我有一个标记为20的CCRepeatForever动作。我称之为:
[player stopActionByTag:20];
注意到了。
我称之为:
[player stopAllActions];
停止。任何的想法?动作是这样创建的并运行良好:
CCRepeatForever *repeat=[CCRepeatForever actionWithAction:animate];
repeat.tag=20;
[player runAction:repeat];
更新:我还尝试设置animate.tag=21
并自行停止该操作,或者除了repeat
操作之外还停止该操作,但两者均无效。
答案 0 :(得分:3)
这应该可行,我使用CCRepeatForever使用stopActionWithTag进行了快速测试,并且它正确地停止了。
我只能想象两种不起作用的情况:
前者很容易检查。如果此代码修复了您的问题,那么您将在播放器对象上运行具有相同标记的多个操作:
while ([player getActionByTag:20]) {
[player stopActionByTag:20];
};
后者不太可能,但可能。找出的一种方法是在runAction行上设置断点并记下播放器变量的地址。然后在stopActionByTag行设置另一个断点,并将该玩家的地址与前一个地址进行比较。如果它们不相同,那就是问题。