最近才发现的一个坑,当node 跑runAction时,里面的action就会处于被占用状态。那如果两个runAction都同时用同一个action的话,会导致报错。 如下
local fadeTime = 0.2
local action1 = cc.FadeIn:create(fadeTime)
self._score_item_1:runAction(action1)
self._score_item_2:runAction(action1)
解决方法:
1.local 两个不同的action,分别调用
local action1 = cc.FadeIn:create(fadeTime)
local action2 = cc.FadeIn:create(fadeTime)
2.写成匿名函数的形式
self._score_item_1:runAction(cc.FadeIn:create(0.2))
3.stopAllActions 停止播放动画,取消占用(没试过,应该可以)
self._score_item_1:stopAllActions()
总结:
可见,在runAction的时候,它是将这个动作加入到一个数组里面的,所以精灵写了两个runAction的话,这2个动作会并行.
所以在跑runAction 的前面最好加上stopAllActions,否则可能不按你的预期运行