2010-02-06 2 views
0

У меня есть вопрос относительно последовательности анимационных изображений png.Как воспроизвести определенный диапазон массива последовательности анимации UIImageView?

Я загружаю изображения с 1 по 35 в слой, и я инициализирую слой с 1-го изображения, используя - 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

Почему бы вам не сохранить массив изображений в другом месте и использовать -subarrayWithRange: метод объекта NSArray для выбора изображений, которые вы хотите оживить, и назначить его свойству animationImages вашего изображения.

Но я не думаю, что UIImageView предоставляет вам механизм для воспроизведения подмассива анимационных изображений.

1

Я в процессе написания небольшой анимации, чтобы сделать именно это. Вы можете найти код на http://github.com/st3fan/iphone-animation

Ключевые особенности:

  • Оптимизированный для PNG изображений с не слишком много форм на фоне простой
  • Включает инструмент для преобразования последовательности PNG (как на экспорт из флэш-памяти) в простой формат файла с одним файлом
  • Сохраняет фреймы, сжатые в памяти. Декомпрессирует в реальном времени.
  • рамки сжаты с помощью простого кодирования длин серий
  • Типичный полный экран анимация занимает ~ 10% CPU

Я написал это специально для игр в http://tickletapapps.com коллекции. Он отлично подходит для анимаций, используемых в этих играх. Свяжитесь с нами через Github, если вам нужна помощь. Код работает, но работает очень хорошо.

+1

Благодарим St3fan! Меня очень интересует рамка анимации. Однако, когда я пытаюсь создать свою демоверсию, я получаю эту ошибку: «_AnimationDecompressRunLengthEncodedPixels», на которую ссылается .... Символ не найден ». Любые идеи? Также, где ваша демоверсия получает свои изображения? - Спасибо! – Jonathan