欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CocosCreator场景动态加载预置物体,二次加载场景报错TypeError: Cannot read property 'length' of null

程序员文章站 2022-06-02 20:14:13
...

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");