xuzhenyu0_0 我有一个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都不显示了。 贴代码,工程在附件中 附件:ShaderTest.rar ShaderTest.rar0B
Aar0n Aar0n @xuzhenyu0_0:我们不负责代码开发逻辑,这个功能没有问题,你会用就可以,开发中的各种逻辑问题只能开发者自己调试。 你这一个ani new 两次,我看就是有问题,还有资源也加载两次
xuzhenyu0_0 Aar0n @Aar0n:你稍微看看代码吧,就这么几行,真心的瞄一眼就知道我描述的问题在哪了。这个功能就是用问题,一旦用clearRes清理过图集之后,那么依赖这个图集的动画就不会被显示,哪怕图集重新加载进来
xuzhenyu0_0 我再说下这个BUG是怎么发生的吧: 1.clearRes不会清除Animation的缓存 2.Animation会缓存,当调用loadAnimation的时候,会优先从缓存中读取,如图 3.所以当清理掉texture后,虽然重新加载了,但是Animation依然没有用新的texture。 解决办法是调用Laya.Animation.clearCache把动画缓存也清除掉,或者用clearTextureRes代替clearRes,具体看项目需求。 踩坑完毕