ActionScript - кэширование растровых изображений и производительность активов изображений - PullRequest
0 голосов
/ 14 марта 2011

Я создал объект Sprite цветового колеса полного спектра, который состоит из 1440 векторных треугольников или срезов, если хотите.

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

импорт PNG-снимка цветового круга в библиотеку со сжатием без потерь, преобразование его в Sprite и вращение этого нового актива изображения отлично работает во время анимации.

Почему при импорте несжатого PNG-изображения выполняется то же векторное изображение со свойством cacheAsBitmap, установленным в значение true?

1 Ответ

6 голосов
/ 14 марта 2011

Поскольку каждый раз, когда вы поворачиваете объект, он должен пересчитывать новое растровое изображение.

cacheAsBitmap предназначен только для объектов, которые переводятся, а не вращаются;из документов :

Свойство cacheAsBitmap лучше всего использовать с видеоклипами, которые имеют в основном статическое содержимое и которые не масштабируются и часто вращаются.С такими видеоклипами cacheAsBitmap может привести к увеличению производительности при переводе фрагмента ролика (при изменении его позиции x и y).

Это происходит потому, что кэшированное растровое изображение копируется попиксельнонепосредственно к поверхности дисплея (для скорости - это называется blitting ).Применение преобразований к растровому изображению при каждом его рендеринге было бы глупо для объектов, которые вращаются только время от времени.Пересчет растрового изображения только при применении преобразований является конструктивным решением, которое повышает производительность в наиболее распространенном случае, когда преобразования, отличные от преобразования, нечасты.

...