zoukankan      html  css  js  c++  java
  • Laya页面嵌套和Scene.destory导致的Bug

    Laya2.1.1.1

    参考:

    预设使用

    Laya给出了相同模块,逻辑代码也相同情况下,使用页面嵌+runtime的使用方案。但是该方案和Laya.Scene.open,Laya.Scene.destroy等有冲突,会导致bug。

    当参考使用Laya的教程,拖入一个scene到另一个scene中使用。

    假设当前页面是主页HomeScene.scene, 主页里嵌套了10个其他的UI也是TestUI.scene的页面。

     在使用Laya.Scene.open(HomeScene)后,再使用Laya.Scene.destroy(HomeScene),会报错scene.url的call是undefined

    找到销毁源码处。发现在Laya.Scene.destroy中销毁时,调用了scene.destroy,然后scene.destroy中改变了unDestroyedScenes列表长度....

    假设列表原长度是10,第一个scene.destroy执行时,列表长度变成了9,然后Laya.Scene.destroy仍然会去找第10个scene,这时第10个scene已经是null了。

    Laya.Scene.destroy:

    scene.destroy:

    所以我是在Scene.destroy如下位置加上scene如果==null的处理

    for(var i=0,n=list.length;i<n;i++){
    var scene = list[i]; if(scene == null){ continue; }

      

  • 相关阅读:
    面试准备
    session
    memcached优化方案实例
    MySQL用户管理
    MySQL事务
    Linux防火墙
    Linux权限体系
    Linux查看日志文件
    查看系统状态
    负载均衡(六)分表分库的负载均衡
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/11605512.html
Copyright © 2011-2022 走看看