![]() |
Движение больших слоев фона
Все нет сил :wacko: было бы все супер, если бы не унылая оптимизация :( Перерыл интернет превратив браузер и рабочий стол в мусорку.
Ситуация такая: Входные данные: контейнеры размером примерно 3000х1000 с векторной графикой. Инициализация: создаю новые контейнеры с предыдущих но уже с растерезированным вектором и добавляю их на сцену. Старые контейнеры с их начинкой сравниваем с null. Итерация: контейнеры стоят на своих местах, с помощью clear(), Matrix() и beginBitmapFill() перерисовываю сохраненную битмапку в свой контейнер. При таком раскладе фпс падает до 16, если контейнеры убрать - получаю необходимые 28-31. Если при итерации ничего не перерисовывать и даже не двигать сцену - те же 16 (и область перерисовки - весь экран). Пробовал ограничить drawRect() размерами флешки, получил в ответ 14 фпс ((( Помогите, буду признателен. |
Цитата:
|
если нужен только скроллинг без изменения фона, рекомендую копать в сторону scrollRect, мега быстрая фича.
|
Код AS3:
|
Я поддержу, попробуйте scrollRect
|
Не уверен, но мне кажется, что bitmapData.draw будет быстрее, чем beginBitmapFill.
Причем если есть возможность отрисовывать содержимое контейнеров в одну битмапдату, то скорость должна сильно повыситься, т.к. плееру не прийдется обрабатывать наложение сложных дисплейобджектов. |
по поводу
Цитата:
|
Всем большущее спасибо!!! Пошел пробовать :)
|
Цитата:
Либо попытаться отрисовать дисплейобджекты в какую-нибудь битмапу: Код AS3:
Цитата:
|
если фон не масштабируется, не поворачивается, и сдвигается на целые пиксели, то bitmapData.copyPixels даст наилучшую производительность
|
| Часовой пояс GMT +4, время: 08:12. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.