今天更新creator到v1.2.1版本,然后在项目的所有场景选择自动释放资源功能,用模拟器运行,有时候切换场景会报错。
能否详细描述下重现方法?
不好确定的,我仅是加入了自动释放,然后在切换场景的时候,有时是好的,有时就会出错。
方便发个 demo 上来看看吗?
确实有这个问题,我也遇到了好几次,当时觉得好奇怪,又不好重现。我用的1.2.2
这个问题是因为场景切换后,Texture 已经被销毁了,但是 SpriteFrame 还在 js 中尝试获取 Texture。如果在场景切换前注册了某个事件的回调或者计时器,场景切换后仍然触发了这个回调,恰好回调中使用到了上一个场景中的资源,就会出现这个错误。
解决方法是在可能出问题的回调函数中检查场景是否已切换,或者组件是否已销毁,或者使用 setAutoReleaseRecursively 来设置 SpriteFrame
1赞
是这个意思,快速切换场景的时候,应该是上一个场景的计时器还没执行完,切换到新场景后,又执行导致的。出现过几次,现在无法重现了,得在某个特定的场景下才有肯能出线。@jare太专业了
给力,多谢解答.
这个功能不应该放出来。建议大家不要用,非常不好控制,要操心的东西太多,漏掉一个就是大事
不这样的话用户难以管理场景资源的卸载
但是管理的成本太大。。不划算
看你了,尊重你的选择,我个人建议要用就是了。
