_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.
Конкретно вот эта идея, с растеризацией вектора – думаю в играх – самое то. Кусок растра рендерится на сцене быстрее вектора, особенно если это сложный вектор.