倾斜时动画开始
Posted
技术标签:
【中文标题】倾斜时动画开始【英文标题】:animation starts when tilting 【发布时间】:2010-01-27 12:27:11 【问题描述】:我喜欢在倾斜时开始这个动画。它没有,所以我想缺少一些基本代码。请帮忙:
- (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];
【问题讨论】:
【参考方案1】:正如命名的那样,只要加速度计检测到加速度变化,-accelerometer:didAccelerate:
就会被触发。因此,在您倾斜期间,此方法可能会执行数十次。但是每次执行时,你都会重置动画,所以最终效果就像没有动画发生一样。
您必须 (1) 分析 acceleration
以检查它是否真的倾斜,以及 (2) 检查 [flap isAnimating]
并且 不要 如果 YES
重置动画。
【讨论】:
KennyTm,你会如何“分析加速度以检查它是否真的倾斜”?以上是关于倾斜时动画开始的主要内容,如果未能解决你的问题,请参考以下文章
Silverlight & Blend动画设计系列四:倾斜动画(SkewTransform)