ActionScript - Растеризация векторной графики во время выполнения? - PullRequest
0 голосов
/ 20 мая 2011

Я разработал кроссплатформенное приложение AIR, которое серьезно работает на мобильных устройствах из-за анимации / использования векторной графики вместо растровых ресурсов. Использование cacheAsBitmapMatrix / cacheAsBitmap лучше, когда и где назначено надлежащим образом, но все же не так быстро, как при использовании растровых активов.

Я попытался bitmapData.draw () векторную графику для объекта Bitmap во время выполнения и вместо этого анимировать объект Bitmap, но это выполняется примерно так же, как (или, возможно, даже точно так же), просто кэшируя вектор графика как растровое изображение.

Пользовательский интерфейс Flash Professional 5.5 теперь имеет возможность преобразовывать векторную графику в растровые изображения, но возможно ли это сделать во время выполнения? возможно ли иметь реальную процедуру Rasterize () для преобразования программно нарисованной векторной графики и, возможно, даже редактируемого текста в растровые изображения во время выполнения для оптимальной анимации, особенно на мобильных устройствах?

1 Ответ

0 голосов
/ 20 мая 2011

Когда вы говорите, что пытались анимировать растровое изображение, я надеюсь, что вы не имели в виду, что вы вращали / изменяли размер растрового изображения - поскольку это медленный процесс.

Возможно, есть движок, который пока ваша игра работаетloading, создает для вас спрайт-лист на основе кадров в мувиклипе (если есть анимация).Тогда на них можно ссылаться как BitmapData.copyPixels().

Это будет просто:

  1. Создать объект BitmapData.
  2. Нарисуйте каждый кадр временной шкалы MovieClips на BitmapDataкак вы бы вручную делали это со спрайтовым листом.
  3. Сохраните BitmapData в ассоциативном массиве для более легкого доступа позже, например, sheets["zombie1"]

Вы можете даже повернуть свой объект взациклите и нарисуйте повернутый объект на листе.

Тогда у вашего SheetObject будут только методы для загрузки части ранее определенного листа и ее отображения.

Это все справатрек ..

...