_quality = LOW. Производительность против дизайна.

февраля 6, 2008

Самое мое любимое качество – LOW. Очень быстро, но смертельно для вектора.

В некоторых случаях, можно с легкостью пользоваться этим чудным режимом, оставляя за собой право на гладкие линии))
Рецепт прост. Если мы имеем дело со статичным вектором, то мы можем сделать с него слепок в битмапДату при режиме _quality=”HIGH”, а затем переключиться на LOW и вывести уже не вектор, а битмапДату. Просто до безобразия.

Более того, замечено, что текст с типом рендеринга ADVANCED – не подвластен козням качества LOW.
ПРи должной сноровке, несложно написать класс, который переводил бы нужный вектор в битмап дату. МОжно даже продумать подобные фокус с анимированными векторами (массив фрейм_в_битмап) Конечно в данном случае больше нагрузки идет на ОЗУ, но в основом именно нагрузка на CPU дает притормаживание.

Пример:

Код фокуса:

import flash.display.BitmapData;
_quality="BEST";
var bmp:BitmapData = new BitmapData(oval._width,oval._height,true,0);
bmp.draw(oval);
_quality = "LOW";
this.createEmptyMovieClip("mc",1);
mc._x = oval._width*2;
mc._y = oval._y;
mc.attachBitmap(bmp,1);

Ссылка по теме: http://www.bytearray.org/?p=117

Popularity: 9% [?]

Entry Filed under: ActionScript,AS2.0,Полезное

2 комментария

  • 1. Алексей  |  февраля 9, 2008 at 20:33

    А есть ли какое-то применение сей фишки в играх?
    Я сейчас часто в блогах задаю такой вопрос. Блогов стало очень много, все пишут интересные вещи. Но мне хотелось бы поглядеть применение :)

  • 2. murejib  |  февраля 10, 2008 at 13:24

    Конкретно применения этой фишки я назвать не могу.
    Видел, что на некоторых тяжелых сайтах, во время какой то глобальной анимации устанавливается качество LOW, по окончании анимации – HIGH.
    Конкретно вот эта идея, с растеризацией вектора – думаю в играх – самое то. Кусок растра рендерится на сцене быстрее вектора, особенно если это сложный вектор.




Метки

Категории

Ссылки

Фреш

МЕТА