Commit c7394971 authored by rockyl's avatar rockyl

修复

parent efab095d
......@@ -2,24 +2,24 @@
* Created by rockyl on 2019-11-05.
*/
import { Stage } from "../../2d/display/index";
import { StackContainer } from "./StackContainer";
import { checkAssetGroupLoaded, loadAssetsGroup, loadAssets, loadAssetsGroups } from "./assets-manager";
import { instantiate } from "./view-interpreter";
import { dataCenter, DataCenter } from "./data-center";
import { setProcessMetaLibs } from "../behavior-runtime/index";
import { Tween } from "../../2d/tween/index";
import { Rect } from "./nodes/index";
import { injectEnv } from "./enviroment";
import { Toast } from "./Toast";
import { arrayFind } from "../utils/index";
import { Node } from "./nodes/Node";
import { bind, createStore } from "./mvvm/index";
import { registerCustomModules } from "./custom-module";
import { dealPageRemainTime, dealPxEnv } from "../px-logics";
import {Stage} from "../../2d/display/index";
import {StackContainer} from "./StackContainer";
import {checkAssetGroupLoaded, loadAssetsGroup, loadAssets, loadAssetsGroups} from "./assets-manager";
import {instantiate} from "./view-interpreter";
import {dataCenter, DataCenter} from "./data-center";
import {setProcessMetaLibs} from "../behavior-runtime/index";
import {Tween} from "../../2d/tween/index";
import {Rect} from "./nodes/index";
import {injectEnv} from "./enviroment";
import {Toast} from "./Toast";
import {arrayFind} from "../utils/index";
import {Node} from "./nodes/Node";
import {bind, createStore} from "./mvvm/index";
import {registerCustomModules} from "./custom-module";
import {dealPageRemainTime, dealPxEnv} from "../px-logics";
import Container from "../../2d/display/Container";
import { Event } from "../../2d/events/Event";
import { alignMgr } from "../decorators/AlignManager";
import {Event} from "../../2d/events/Event";
import {alignMgr} from "../decorators/AlignManager";
/**
* 游戏舞台
......@@ -127,7 +127,7 @@ export class GameStage extends Node {
registerCustomModules(customs);
if(dataMapping) {
if (dataMapping) {
this.dataCenter.registerDataMapping(dataMapping);
}
setProcessMetaLibs(processes, builtinProcesses);
......@@ -154,7 +154,7 @@ export class GameStage extends Node {
setTimeout(async () => {
let sceneEntry = await this.instantiateView(entrySceneView);
if(sceneEntry) {
if (sceneEntry) {
this._sceneContainer.push(sceneEntry);
}
})
......@@ -166,19 +166,27 @@ export class GameStage extends Node {
async showInnerLoadingView() {
let loadingViewName = this._config.options.loadingView;
let loadingView = this._loadingView.getChildAt(0);
if(this._loadingView.children.length == 0 && loadingViewName) {
if (this._loadingView.children.length == 0 && loadingViewName) {
loadingView = await this.instantiateView(loadingViewName, true, false);
this._loadingView.addChild(loadingView);
}
Tween.get(this._loadingView, null, null, true)
.to({alpha: 0}, 200)
.call(() => {
this._loadingView.visible = true;
});
}
/**
* 隐藏加载视图
*/
hideInnerLoadingView() {
if(this._loadingView.visible) {
if (this._loadingView.visible) {
Tween.get(this._loadingView, null, null, true)
.to({alpha: 1}, 200)
.call(() => {
this._loadingView.visible = false;
});
}
}
......@@ -190,40 +198,40 @@ export class GameStage extends Node {
*/
async instantiateView(name, cache = true, showLoadingView = true) {
let view;
if(cache) {
if (cache) {
view = this._viewCache[name];
}
if(!view) {
if (!view) {
let viewConfig = this.getViewConfigByName(name);
if(viewConfig) {
if (viewConfig) {
const {assets, customs} = this._config;
if(!Array.isArray(assets)) {
if (!Array.isArray(assets)) {
let groups = {};
let {depCustoms} = viewConfig;
if(depCustoms && depCustoms.length > 0) {
for(let custom of customs) {
if(depCustoms.indexOf(custom.id) >= 0 && custom.assets) {
if(!checkAssetGroupLoaded(custom.id)) {
if (depCustoms && depCustoms.length > 0) {
for (let custom of customs) {
if (depCustoms.indexOf(custom.id) >= 0 && custom.assets) {
if (!checkAssetGroupLoaded(custom.id)) {
groups[custom.id] = custom.assets;
}
}
}
}
if(!checkAssetGroupLoaded(viewConfig.uuid)) {
if (!checkAssetGroupLoaded(viewConfig.uuid)) {
let depAssets = assets[viewConfig.uuid];
if(depAssets && depAssets.length > 0) {
if (depAssets && depAssets.length > 0) {
groups[viewConfig.uuid] = depAssets;
}
}
if(Object.keys(groups).length > 0) {
if (Object.keys(groups).length > 0) {
await loadAssetsGroups(groups, async () => {
if(showLoadingView) {
if (showLoadingView) {
await this.showInnerLoadingView();
}
}, async () => {
if(showLoadingView) {
if (showLoadingView) {
this.hideInnerLoadingView();
}
});
......@@ -232,7 +240,7 @@ export class GameStage extends Node {
view = instantiate(viewConfig);
let store = {};
if(viewConfig.store) {
if (viewConfig.store) {
const {exp, computed} = viewConfig.store;
store = createStore(exp, computed);
}
......@@ -244,7 +252,7 @@ export class GameStage extends Node {
bind(store, view);
console.timeEnd('bind');
if(cache) {
if (cache) {
this._viewCache[name] = view;
}
} else {
......@@ -266,11 +274,11 @@ export class GameStage extends Node {
const {action, view, lastView, options, hasView} = e.data;
const target = <StackContainer>e.target;
switch(action) {
switch (action) {
case 'push':
case 'replace':
case 'popAll':
if(options && options.center) {
if (options && options.center) {
view.x = (target.width - view.width) / 2;
view.y = (target.height - view.height) / 2;
}
......@@ -279,18 +287,18 @@ export class GameStage extends Node {
let blackLayer = this._blackLayer;
let pParent = blackLayer.parent;
if(hasView) {
if (hasView) {
target.addChildAt(blackLayer, target.childNum - 1 - (view ? 0 : 1));
let modalAlpha = 0.7;
if(options && options.hasOwnProperty('modalAlpha')) {
if (options && options.hasOwnProperty('modalAlpha')) {
modalAlpha = options.modalAlpha;
}
if(!pParent || blackLayer['tween_count'] > 0) {
if (!pParent || blackLayer['tween_count'] > 0) {
blackLayer.alpha = 0;
Tween.get(blackLayer, null, null, true)
.to({alpha: modalAlpha}, 300);
}
} else if(pParent) {
} else if (pParent) {
Tween.get(blackLayer, null, null, true)
.to({alpha: 0}, 300)
.call(() => {
......@@ -305,17 +313,17 @@ export class GameStage extends Node {
lazyLoadAllAssets = async () => {
let {assets, customs} = this._config;
if(!Array.isArray(assets)) {
for(let uuid in assets) {
if (!Array.isArray(assets)) {
for (let uuid in assets) {
let group = assets[uuid];
if(group && group.length > 0) {
if (group && group.length > 0) {
await loadAssetsGroup(group, uuid);
}
}
}
for(let custom of customs) {
for (let custom of customs) {
let group = custom.assets;
if(group && group.length > 0) {
if (group && group.length > 0) {
await loadAssetsGroup(group, custom.id);
}
}
......@@ -327,10 +335,10 @@ export class GameStage extends Node {
let assetsToLoad = assets;
let total;
if(!Array.isArray(assets)) { //如果是分组后的配置就加载共用分组,否则加载全部
if (!Array.isArray(assets)) { //如果是分组后的配置就加载共用分组,否则加载全部
assetsToLoad = assets['common'];
if(assetsToLoad.length > 0) {
if (assetsToLoad.length > 0) {
await this.showInnerLoadingView();
await loadAssetsGroups({
preload: assetsToLoad,
......@@ -367,7 +375,7 @@ export class GameStage extends Node {
loaded++;
onPreloadAssetsProgress && onPreloadAssetsProgress(loaded, total);
if(loaded >= total) {
if (loaded >= total) {
onPreloadAssetsComplete && onPreloadAssetsComplete();
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment