关于stopAllActions runAction的问题

使用的版本是:3.3f

我在touchEnd事件里,针对一个sprite进行变换动作。就是touch一下,就从A动作变成B动作。
如果我直接runAction,会将多个动作合并。这不是我想要的结果。
于是我改成每次runAction前,先stopAllActions,再使用cc.Animate:create() 创建新的动作,再runAction。
结果这样改后,先前的动作是停止了,但后面的runAction并不展现新的动作(也不出错)。这是为什么呢?
如果有知道答案的前辈,烦请赐教一下,谢谢!

没有朋友遇到过这个问题么?

为什么不用Spawn呢

感谢楼上回复!
Spawn是合并两个动作吧,可是我想要的结果是touch一下,变换一个新动作……

你的stopAllActions和运行下一个动作是不是写到一个函数里了?试试用回调的方式实现,最终这一套逻辑应该是一个sequence

会不会是stopAllActions把新创建出来的也停掉了

可以把新创建的延迟0.1秒验证下

感谢回复。确实是写在一个function里了。是先stopAllActions再runAction的……
我在touch侦听那边,如果touchBegan,action就会变成move,touchEnded就变成stand。会对应调用doAction(action)函数。
这个函数逻辑大概是:
function MySprite:doAction(action)
self:stopAllActions(); --停止动作
–取出cache中的动画,对其执行动作
local animation = cc.AnimationCache:getInstance():getAnimation(action);
local spriteAnimate = cc.Animate:create(animation);
self:runAction(cc.RepeatForever:create(spriteAnimate));
end

现象就是新的action并没有预期得到执行,而是静止的状态

哎呀,非常抱歉,我发现问题了,是我传的action不对导致的……上面的代码并没有问题。也就是说先stopAllActions,再runAction并无问题……可以结贴了。
非常感谢楼上的回复!!