Почему растровое изображение превосходит вектор, as3? - PullRequest
2 голосов
/ 28 апреля 2010

Почему растровое изображение превосходит вектор?

My Flash предназначен для большого киоска, с требованиями к мультимедиа и должен точно функционировать в качестве счетчика. Я хочу сохранить вектор для масштабируемости.

Когда я делал простой тест FPS, я заметил, что моя версия Bitmap работала отлично, и весь векторный файл был заметно медленнее.

ПОЖАЛУЙСТА, ОБЪЯСНИТЕ
• производительность вектора
• какие графические стандарты я могу применять
• решения для использования вектора


АНИМАЦИЯ ИСПЫТАНИЯ KIOSK
альтернативный текст http://www.ashcraftband.com/myspace/videodnd/daemonfps.jpg


РЕЗУЛЬТАТЫ
• хорошо работают только текст и растровое изображение, а не вектор
• фон и облака в порядке, но больше слоев замедляют его

1 Ответ

6 голосов
/ 28 апреля 2010

Это действительно вполне логично, когда вы понимаете, что такое вектор.

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

Растровое изображение, как вы, вероятно, знаете, во флэш-памяти рассматривается как данные пикселей. Что-то, что просто изображает вещи.

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

Вы кэшируете все как вектор, вы не заметите разницы в малейшем. Все, что вы нарисовали на сцене - установите флажок «кэшировать как растровое изображение», а также любой новый элемент, созданный в коде и добавленный как дочерний элемент, cacheAsBitmap = true для каждой визуальной вещи.

Есть замечательная маленькая хитрость, которая должна сработать.

Вы все еще можете использовать свои векторы. Однако при добавлении их на сцену установите флажок «Кэшировать как растровое изображение» под настройками отображения на панели свойств.

в коде вы можете написать

myCloud.cacheAsBitmap = true

Это свойство доступно для каждого визуального объекта.

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


вот несколько URL-адресов из googling 'as3 cache as bitmap'

http://www.adobe.com/devnet/flash/articles/bitmap_caching_03.html

живые документы для displayObject - вы увидите его на 3 в первой таблице.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html

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