2010-02-06 48 views
0

我有一个关于PNG,动画图像序列的问题。如何播放UIImageView动画序列数组的特定范围?

我加载从1个图像 - 35成层,我使用所述第一图像初始化层 - initWithImage。我有几个按钮,想要能够播放不同范围的图像序列数组。

是否有打只有1影像的方式 - 10?
有没有办法控制播放的图像范围... 11 - 35或4 - 20或其他?

当然,我试图创建与图像的单独阵列的单独的层,并具有在彼此的顶部上的层。他们的问题是initWithImage。如果我玩第二层,我可以看到下面的初始化图像。

这里是我的图像序列码:

- (void) loadAnim05 { 
    cAnim = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cof_01.png"]]; 
    cAnim.center = CGPointMake(78,211); 
    NSMutableArray *array = [NSMutableArray array]; 
    for (int i = 1; i <= 35; i++) 
     [array addObject:[UIImage imageNamed:[NSString stringWithFormat:@"cof_%02d.png",i]]]; 
    cAnim.animationImages = array; 
    cAnim.animationDuration = 1.0; 
    cAnim.animationRepeatCount = 1; 
    [self.view addSubview:cAnim]; 
    [cAnim release]; 
} 

非常感谢您的任何帮助。

回答

1

为什么不在其他地方维护一个图像数组,并使用NSArray对象的-subarrayWithRange:方法来挑选想要动画的图像并将其分配给imageView的animationImages属性。

但我不认为UIImageView的为您提供了机制发挥animationImages的一个子。

1

我在写一个小动画框架,做的正是这个过程。您可以在http://github.com/st3fan/iphone-animation

主要功能的代码是:

  • 优化的PNG图像与没有太多的形状在单色背景
  • 包括转换一个PNG序列(一个工具,如从Flash出口)转换为简单的单文件容器格式
  • 保持帧在内存中压缩。解压缩实时。
  • 帧用一个简单的游程编码
  • 典型的全屏动画需要〜10%的CPU

我写了这个专门为http://tickletapapps.com收集游戏压缩。这对于那些游戏中使用的动画非常有效。如果您需要帮助,请通过Github与我联系。代码工作正在进行中,但工作得很好。

+1

感谢St3fan! 我对你的动画框架很感兴趣。但是,当我尝试构建演示程序时,出现以下错误:“_AnimationDecompressRunLengthEncodedPixels”,引用自...符号未找到。“ 任何想法?还有您的演示从何处获取其图像? – Jonathan 2010-02-09 02:38:26