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; }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM