不同距离的CAAnimation对象具有相同的速度?

时间:2011-07-22 09:55:40

标签: objective-c performance caanimation cakeyframeanimation

我有多个物体在不同距离的路径上移动。如何才能获得所有对象的相同速度?

CAKeyframeAnimation * pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@“position”]; pathAnimation.speed = 0.5;

不起作用;(

如果距离越大,速度就越快。

1 个答案:

答案 0 :(得分:0)

我没有测试过这个想法,但似乎速度被定义为相对值。

如果可以计算路径长度,则可以将其重新计算为像素相对值。动画的速度为animation.speed = baseSpeedInPixels / thisPathLengthInPixels;,其中 baseSpeedInPixels 是所需的基本速度常数。

可能会导致值大于1.0,如果动画类不理解这一点,您可以重新映射时间值以将速度保持在[0,1]范围内。