[]异步加载一个UI对象时的问题

我希望业务逻辑同步的创建和删除一个UI对象,但是UI本身的加载是异步的。因此我将load方法放到了createChildren函数里面去。
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么?
已邀请:

qian

赞同来自:

资源加载过一次,第一次就是直接回调了 但是一般加载都是放到ui外面的

watsonsong

赞同来自:

我希望放在UI内部,能先渲染一个框架出来,然后内部的子UIView能够分批加载出来。
我担心的问题是第一次加载的时候时间过长(毕竟是在下载),可能正在下载过程中,用户又把这个UI关闭了。这个时候onLoaded函数还是会回调回来么?

要回复问题请先

商务合作
商务合作