2009-07-21 44 views
0

我发现这个代码片段:为什么我应该在动画中使用CATransaction?

[self setValue:direction forKey:@"currentDirection"]; 

CAKeyframeAnimation * animation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; 
animation.path = path; 
animation.duration = grids * gridWidth/[self speed]; 
animation.fillMode = kCAFillModeForwards; 
animation.removedOnCompletion = NO; 
animation.delegate = self; 
animation.calculationMode = kCAAnimationLinear; 
[self addAnimation:animation forKey:@"movement"]; 
self.position = destination; 

[CATransaction begin]; 
[CATransaction setValue:[NSNumber numberWithFloat:_turn_duration] 
              forKey:kCATransactionAnimationDuration]; 
eyes.position = eyeDestination; 
pupils.position = pupilDestination; 
[CATransaction commit]; 

CGPathRelease(path); 

这里有什么用CATransaction点?

回答

2

将事务中两个隐式动画的持续时间设置为与以上关键帧动画持续时间不同的值。交易中的动画将运行超过_turn_duration秒,而关键帧动画将运行超过grids * gridWidth/[self speed]秒。

+0

所以CAKeyframeAnimation是一个动画块? – Thanks 2009-07-21 22:45:12

相关问题