animation异常,detroy后循环报错

版本:3.6.0 和最新版本3.7.1均有出现。

现象:animation是序列帧的形式,调用destory后,animation的动画状态似乎并未停止,sprite的_applySpriteSize函数一直在被调用。

猜测原因:猜测是动画状态原因是设置成循环播放就会出现这个问题,设置成默认则没问题。

demo及重现方式:暂时无法提供demo和重现方式,确认是用代码给animation增加clip之后,然后调用destory就会出现报错(把这段代码注释后也不会报错,尝试过几种写法,均无效),但是在demo里用相同的方式就无法重现image

先停动画再删节点

这就是另一个神奇而又蛋疼的点,一般这种时候,我可以在onDestory里把动画停止就不会又问题。但是实际运行的时候,我发现,其实在onDestory的时候,当前的node已经是null了。有点颠覆我的认知了。

image 我直接把animaton组件里销毁的时候停止,也不行

最后惊奇的发现,动画只要删除一次就可以正常。深深的感觉到了来自cocos的xxxxx。已经有好几次了,需要神奇的写法才能正常。(说个题外话,比如之前那个videoplay,在不同平台,不同机型,需要不同的写法才能正常显示。)
image

1赞

666~!~