如何检测核心动画被跳过/无法启动

时间:2011-06-10 19:25:33

标签: iphone core-animation

在我的游戏中,我有一系列核心动画在一秒钟内一个接一个地运行。在动画结束时,调用一个方法来触发(animationDidStop :)一些重要的逻辑。

通常这很有效。然而,偶尔,特别是在较慢的设备(如iPhone 3G或iPhone 2)上,由于计时问题(运行太多且CPU无法跟上),其中一个动画被跳过(或无法启动)。我很喜欢跳过动画,但问题是,我的方法也没有被调用。如果可以检测到这种跳过将会很好。

有人知道如何在跳过核心动画/无法启动时检测到这种情况吗?

感谢。

2 个答案:

答案 0 :(得分:1)

你需要使用2件事

- NSTimer *计时器

- BOOL isAnimationCompleted

1)启动与动画时间相同的计时器“计时器”。

2)在(animationDidStop :)方法中设置“isAnimationCompleted = TRUE”

3)“计时器”勾选后检查“isAnimationCompleted”变量

如果(!isAnimationCompleted)   

[self callMethodMannually];

答案 1 :(得分:0)

我确信有一个更好的选项,我没有看到,但你总是可以将状态保存在某个变量中,然后使用NSTimer来启动一个稍后检查该状态的任务。

希望别人能为你提供一些不那么神奇的东西!