0

我喜欢在倾斜时开始这个动画。它没有,所以我想缺少一些基本代码。请帮忙:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
 flap.animationImages = [NSArray arrayWithObjects:
       [UIImage imageNamed: @"ronnie1.png"],
       [UIImage imageNamed: @"ronnie2.png"],
       [UIImage imageNamed: @"ronnie3.png"],
       [UIImage imageNamed: @"ronnie4.png"], 
       [UIImage imageNamed: @"ronnie5.png"],
       [UIImage imageNamed: @"ronnie6.png"],
       [UIImage imageNamed: @"ronnie7.png"],
       [UIImage imageNamed: @"ronnie8.png"],
       [UIImage imageNamed: @"ronnie9.png"],
       [UIImage imageNamed: @"ronnie10.png"],nil];
 [flap setAnimationRepeatCount:1];
 flap.animationDuration = 2;
 [flap startAnimating];
}
4

1 回答 1

0

如上所述,-accelerometer:didAccelerate:只要加速度计检测到加速度变化,就会触发。因此,在您倾斜期间,此方法可能会执行数十次。但是每次执行时,你都会重置动画,所以最终效果就像没有动画发生一样。

您必须 (1) 分析acceleration以检查它是否真的倾斜,以及 (2) 检查[flap isAnimating]并且不要重置动画 if YES

于 2010-01-27T12:32:56.837 回答