[]ani用到的图集资源清理之后再次用load进来,重新创建ani,ani不现实的bug

我有一个a.ani文件,这个a.ani需要用到b.json图集。
先用Laya.loader.load加载b.json图集,然后在加载完成的处理函数里面new一个Animation,将a.ani显示出来
 
过一会移除a.ani,并且用Laya.loader.clearRes删除b图集
 
又过一会,重新用Laya.loader.load加载b图集,然后在加载完成的处理函数里面重新new一个Animation,发现无论如何a.ani都不显示了。
 
贴代码,工程在附件中

333444.png

 
已邀请:

xuzhenyu0_0

赞同来自:

我再说下这个BUG是怎么发生的吧:
1.clearRes不会清除Animation的缓存
2.Animation会缓存,当调用loadAnimation的时候,会优先从缓存中读取,如图

1231233.png

 
3.所以当清理掉texture后,虽然重新加载了,但是Animation依然没有用新的texture。
 
解决办法是调用Laya.Animation.clearCache把动画缓存也清除掉,或者用clearTextureRes代替clearRes,具体看项目需求。
 
踩坑完毕

Aar0n

赞同来自:

代码写的有问题

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作