我有超过200幅我想动画超过10秒左右的空间。 我已经尝试使用animationImages
通过将图像加载到一个数组,然后调用startAnimating
方法。 这没关系曾在模拟器,但坠毁的iPad。
我试图调用一个NStimer
秒的每1/25,并且每个定时器烧制时间改变图像。 这比以前的方法表现较好,但在模拟器上运行良好,而且附近坠毁在iPad上(laggy)动画的结尾。
有人能帮助我,并告诉我处理这个问题的理想方式? 谢谢。
原始代码:
- (void) humptyFallingAnim {
NSString *filename;
if (humptyImageCounter < 285) {
filename = [NSString stringWithFormat:@"Humpty Animation HD1.2 png sequence/humpty_HD1.2_%d.png", humptyImageCounter];
UIImage *someImage = [UIImage imageNamed:filename];
humptyFalling.image = someImage;
NSLog(@"loaded image: %d", humptyImageCounter);
humptyImageCounter++;
} else {
NSLog(@"Timer invalidated");
[humptyTimer invalidate];
humptyTimer = nil;
}
}
编辑:这不是为我工作的一些新的代码
NSString *filename;
if (humptyImageCounter < 285) {
filename = [NSString stringWithFormat:@"Humpty Animation HD1.2 png sequence/humpty_HD1.2_%d.png", humptyImageCounter];
@autoreleasepool {
UIImage *someImage = [UIImage imageWithContentsOfFile:filename];
humptyFalling.image = someImage;
NSLog(@"loaded image: %d", humptyImageCounter);
}
humptyImageCounter++;
} else {
NSLog(@"Timer invalidated");
[humptyTimer invalidate];
humptyTimer = nil;
}
编辑2:
-(void) motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"You shook it!");
[self.view bringSubviewToFront:imgSnail];
if (deviceHasBeenShaken == 0) {
deviceHasBeenShaken = 1;
}
humptyTimer = [NSTimer scheduledTimerWithTimeInterval:(1/25) target:self selector:@selector(humptyFallingAnim) userInfo:nil repeats:YES];
[self moveHumptyPosition];
}