iPhone лучшие практики для большого количества анимаций с использованием UIImageView - PullRequest
0 голосов
/ 21 декабря 2010

Просто запрашиваю небольшой совет, анимирующий изображения на iphone. Я создаю приложение, которое состоит из персонажа с 5 анимациями.

Каждая анимация состоит примерно из 50 изображений со средней продолжительностью 3 секунды.

Я собирался создать массив изображений для каждой анимации, использовать их в качестве источника для UIImageView и переключать их по мере необходимости. Но, как вы можете догадаться, этот подход убивает память моего iphone и, следовательно, приложение. (250 изображений @ 130K каждый!)

Так что это заставило меня задуматься, как другие люди справляются с этим? Может, поменять анимацию на фильмы?

Спасибо за любой совет.

Ответы [ 2 ]

1 голос
/ 21 декабря 2010

Я бы порекомендовал маршрут фильма, если вы можете сойти с рук. Это будет чище и, вероятно, намного эффективнее.

Однако, если по какой-то причине вы застряли с изображениями, вот производительность при последовательной загрузке 5000 полнокадровых изображений:

[UIImage imageWithData:...] // 44.8 seconds

[UIImage imageWithContentsOfFile:...] // 52.3 seconds

[[UIImage alloc] initWithContentsOfFile:…] // 351.8 seconds

[UIImage imageNamed:...] // hung due to caching
0 голосов
/ 21 декабря 2010

Вы пытались установить свойство animationImages в UIImageView с массивом UIImages, представляющим ваши кадры.Я делал это в прошлом, и это работало довольно хорошо, но у меня в анимации было не так много изображений, как у вас.

Если в ваших изображениях слишком много данных, возможно, вам придется что-то сделатьболее сложный, как атлас спрайтов.Этот метод объединяет несколько ваших кадров в одно изображение, а затем анимирует их, изменяя видимую часть большого изображения.Таким образом, все сразу загружается, и анимация просто изменяет часть изображения, которую видит пользователь.Cocos2D обладает множеством функций, связанных со спрайтовой анимацией.Если вещь animationImages не работает, вы можете попробовать это.

- Майк

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