天天看點

CocosCreator場景動态加載預置物體,二次加載場景報錯TypeError: Cannot read property 'length' of null

TypeError: Cannot read property 'length' of null

這個錯的是js上面報錯,原因就是參數不符合規格,有null存在,那麼就重點排查每一個參數的的值。

出問題代碼:

logUtils.log("aaaaa=======", this.bt);
where.node.addChild(this.bt);
           
  1. 列印首次加載參數值
    CocosCreator場景動态加載預置物體,二次加載場景報錯TypeError: Cannot read property 'length' of null
  2. 列印二次加載參數的值
    CocosCreator場景動态加載預置物體,二次加載場景報錯TypeError: Cannot read property 'length' of null
  3. 進行對比分析
    CocosCreator場景動态加載預置物體,二次加載場景報錯TypeError: Cannot read property 'length' of null
  4. 得出結論
第一次關閉場景的時候場景資源進行了回收,同時綁定在場景資源上的node對象也進行了回收,二次加載的時候,該對象各項參數為空,擷取資訊時候取不到是以抛出異常。
  1. 解決問題

    由于本項目中沒有使用自動釋放資源,那麼隻需要考慮動态加載的資料,考慮在每次啟動場景之前預置物體進行加載即可:(

    加載都是異步的,需要自己考慮設定

    )
cc.director.preloadScene("game");
    burstBt.init(); //初始化按鈕
    cc.director.loadScene("game");
           

繼續閱讀