这个问题我们也找了很多解决方案
经过n多次的实验后以下代码可以基本上释放load出来的动画资源(说基本上是因为 ,不清楚东西有没有泄漏)
另外在win上动画释放时不会泄漏的。。安卓和ios才会出现
CCArmatureDataManager:sharedArmatureDataManager():removeArmatureFileInfo(path)
for i=0,pngNum-1 do
CCSpriteFrameCache:sharedSpriteFrameCache():removeSpriteFramesFromFile(plist)
local fullpath =CCFileUtils:sharedFileUtils():fullPathForFilename(file)
CCTextureCache:sharedTextureCache():removeTextureForKey(fullpath)
end
首先用datamanager remove掉资源
然后对每一个plist再remove一次。。(相对路径) 这个不知道为什么 removeArmatureFileInfo 代码中一起时间remove了。。 但是不加这句话会导致后面的贴图无法unload
最后 用绝对路径remove所有动画相关的 png。。
如此就可以卸载动画中的所有 贴图资源
吐槽一句,动画这么大的资源居然没有一个统一卸载的函数。。这样我们很困扰的。。提供的卸载函数 只能卸载一些内存的对象,却对占用内存最大的贴图不进行处理实在是很坑爹的设定啊
对了。。。这个方法在ios下没问题 在安卓下会闪退。。。会调用一个zip的函数,可能是指针损坏了,,(我们有多线程后台load动画) 这个bug在查