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]してリセットしないYESでください。

于 2010-01-27T12:32:56.837 に答える