Показать сообщение отдельно
Старый 07.10.2008, 02:47
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 18  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, для красоты и простоты =)
Код:
manager.conteiner.x = (stage.stageWidth - manager.conteiner.width) << 1;
так, во-первых, координаты будут всегда целые (округленные в меньшую сторону), ну и вообще битовые операции быстрее арифметических =)
Ну и для плавности и уверенности, я бы делал так:
по евенту -> сначала проверить а действительно ли результат изменился (ну, за 4-8 тысячных секунды вполне мог и не изменится), если ничего не поменялось - ничего не делать (перерисовывать экран всем тяжело, а уж раз в 5 тысячных долей секунды и подавно... это ж практически 200 ФПС получается =) Затем, если изменение все-таки произошло -> 2 варианта развития событий: либо подождать планового обновления экрана и тогда все и отрисовать, либо, продвинутый вариант, перед обновлением экрана вызвать у стейджа инвалидате, и по событию рендера отрисовать то, что мы поменяли, ну или просто добавить updateAfterEvent, но эт тоже лишняя нагрузка.

ЗЫ: за 80% уходит когда перетаскиваешь, а не когда сайт просто работает...

Т.е. по научному, вообще, я бы в обработчике ресайза задавал координаты Recangle'ам а в обработчике ENTER_FRAME - отрисовывал бы графику соответственно позиции прямоугольников, и не было бы впечатления, что объекты двигаются с разной скоростью и т.д.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 07.10.2008 в 02:54.