2010-01-27 1 views
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]; 
} 

ответ

0

Как называется, -accelerometer:didAccelerate: будет срабатывать каждый раз, когда акселерометр обнаруживает изменение ускорения. Следовательно, во время вашего опрокидывания, вероятно, этот метод будет выполняться десятки раз. Но каждый раз, когда он выполняется, вы обнуляете анимацию, поэтому чистый эффект выглядит так, как если бы анимация не происходила.

Вы должны (1) анализировать acceleration, чтобы проверить, является ли он действительно наклоном, и (2) проверить [flap isAnimating] и не сбросить анимацию, если YES.

+0

KennyTm, как бы вы проанализировали ускорение, чтобы проверить, действительно ли он наклоняется? – daidai