Как воспроизвести определенный диапазон массива последовательности анимации UIImageView? - PullRequest
0 голосов
/ 06 февраля 2010

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

Я загружаю изображения из 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];
}

Большое спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 06 февраля 2010

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

Основные характеристики:

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

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

1 голос
/ 06 февраля 2010

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

Но я не думаю, что UIImageView предоставляет вам механизм для воспроизведения подмассива animationImages.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...