|
发表于 2019-11-27 16:15:42
|
显示全部楼层
我仔细阅读代码后发现
WPlatform 并没有定义
endDo 回调
dispose中也没有写
endDo();
所以当切换地图后,其实并没有释放掉场景,而是一直进入了return false 阻止了状态机运行
我们可以在SMain中看看setDialogParallel函数的实现:
this.setDialogParallel = function(kname,dl,endFuc){
if(dialogParallel[kname] != null){//同名窗口释放
dialogParallel[kname].dispose();
delete dialogParallel[kname];
}
dialogParallel[kname] = dl;
dialogParallel[kname].endDo = function(obj){
endFuc(obj);
delete dialogParallel[kname];
}
};
也就是异步会话框只有收到endDo回调的时候,才会从dialogParallel中移除。不过现在虽然存在内存泄漏,但也不打紧。这里指出希望星晨可以更好的理解脚本的异步会话原理
|
|