cc.resources.load加载图集的问题,感觉是引擎的bug

cocos2.4.12。
6b522123da5452ff9de345db53ef2db
2b806f3b77cce98f4c3f6e274a5452a
cc.resources.load加载一个图集a.plist,过一会用cc.resources.release释放这个图集,等再次加载这个图集时,显示的成功,正常走了cc.resources.load的回调,但是图集的_spriteFrames为空,不能用。

图1为正常情况,图2为异常情况。

图集有 plist 和 png 2个文件,我只加载了plist文件,发现是能正常用的,所以释放也只释放了cc.SpriteAtlas,不清楚问题出在哪

1赞

指定释放 cc.SpriteAtlas 类型没有,要指定类型,否则可能释放的是纹理

分享个跟踪释放资源位置的方法, 把下面代码输入到控制台运行即可


     let old_tryRelease = cc.assetManager['_releaseManager'].tryRelease
     cc.assetManager['_releaseManager'].tryRelease = function (asset, force) { 
         if(asset instanceof cc.SpriteAtlas){
            console.warn('资源被释放 tryRelease', asset.name, force);
         }
         return old_tryRelease.call(cc.assetManager['_releaseManager'], asset, force); 
     }

加载和释放都指定了