[]异步加载一个UI对象时的问题
我希望业务逻辑同步的创建和删除一个UI对象,但是UI本身的加载是异步的。因此我将load方法放到了createChildren函数里面去。
因为加载是异步的,很有可能在加载过程中,用户或者其他行为逻辑已经反复开关这个界面多次了。是否意味着onLoaded会多次回调回来。如何判断过滤那些已经失效的onLoaded,在里面判断this.stage么?
class MyView extends ui.view.MyViewUI {
constructor() {
super();
}
createChildren():void {
super.createChildren();
let assets = [
{ url: "res/atlas/ui/shared.atlas", type: Loader.ATLAS },
{ url: "res/atlas/ui/myview.atlas", type: Loader.ATLAS },
{ url: "view/MyView.json", type: Loader.JSON },
]
Laya.loader.load(assets, Handler.create(this, this.onLoaded));
}
private onLoaded():void {
this.createView(Laya.loader.getRes("view/MyView.json"));
}
}
因为加载是异步的,很有可能在加载过程中,用户或者其他行为逻辑已经反复开关这个界面多次了。是否意味着onLoaded会多次回调回来。如何判断过滤那些已经失效的onLoaded,在里面判断this.stage么?
没有找到相关结果
已邀请:
要回复问题请先登录
2 个回复
qian
赞同来自:
watsonsong
赞同来自:
我担心的问题是第一次加载的时候时间过长(毕竟是在下载),可能正在下载过程中,用户又把这个UI关闭了。这个时候onLoaded函数还是会回调回来么?