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);
- 打印首次加载参数值
- 打印二次加载参数的值
- 进行对比分析
- 得出结论
第一次关闭场景的时候场景资源进行了回收,同时绑定在场景资源上的node对象也进行了回收,二次加载的时候,该对象各项参数为空,获取信息时候取不到所以抛出异常。
- 解决问题
由于本项目中没有使用自动释放资源,那么只需要考虑动态加载的数据,考虑在每次启动场景之前预置物体进行加载即可:(加载都是异步的,需要自己考虑设置
)
cc.director.preloadScene("game");
burstBt.init(); //初始化按钮
cc.director.loadScene("game");