cocos creator 2.0.10调用cc.loader.releaseAll():会报错

  • Creator 版本:cocos creator 2.0.10

  • 目标平台:

  • 详细报错信息,包含调用堆栈:

  • 重现方式:直接调用 cc.loader.releaseAll():NewProject.zip (322.7 KB)

  • 之前哪个版本是正常的 :

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

  • 出现概率:100

  • 额外线索:

顺便再报一个,当使用 playMusic 播放背景音乐,对它设置setFinishCallback,第一次播放进入了回调方法,第二次播放该回调方法未生效,这是为什么?重现方法在demo中。。。。。

cc.loader.releaseAll(),这个是释放所有资源。你是在哪里调用的?如果调用这方法之后,其他地方还有引用到被你释放掉的资源,就会报错。

你随便创建一个工程,什么都不用加载,就直接调用,也会报错,或者你把demo下下来看

我是这样理解的,不懂对不对。你在当前场景点击按钮释放所有资源,该场景下的比如cocos2dx那张图就被你释放掉了,但是场景还在引用他。所以这个方法调用时机,应该是在场景切换的时候的onDestroy方法里调用。你要释放你loadres进来的音频资源,应该用cc.loader.release方法去释放。

我在cc.game.restart()调用之前去调用cc.loader.releaseAll(),我游戏需要重启,我释放所有资源,没毛病吧?

第一点:游戏都要重启了,所有的资源都会释放掉,为什么还要手动调用releaseall。
第二点:你这样调用也是有问题的,你释放所有的资源的前提,是要在所有引用都被释放掉的前提,你这样调用,被你释放的那些资源没有被其他地方引用了?明显是有。

creator又没有引用计数,引擎根本不会释放你的资源