Цитата:
Сообщение от BlooDHounD
Psycho Tiger, бред.
ENTER_FRAME - вызывается когда происходит вхождение в новый кадр. то есть предыдущий отрисован.
RENDER - рассылается, на сколько я помню, если вызывать Stage#invalidate()
причём тут мморпг я вообще молчу.
|
Цитата:
ENTER_FRAME будет вызываться каждый раз, когда флеш-плееру НАДО отрисовать кадр. Сказали - он рассылает событие, но экран не обновляет.
|
Примерно это я имел ввиду. Кадр отрисован, и идет вхождение в новый кадр - тогда и вызывается.
RENDER надо заставить рассылаться вручную - это другой вопрос, если нужно поймать событие, когда уже всё готово к отрисовке, но отрисовка ещё не пошла - его мы и ловим.
Просмотрел бегло статью. Самый веский аргумент - потеря фпс в IE. Давно ещё тесты проводил, это не относиться к "тормозам" - как самый быстрый тест - увеличиваем фпс вдвое и смотрим - если бы с ENTER_FRAME были реально тормоза - фп готов был бы повеситься, а нет, все идет нормально. Как учесть - вполне, но все же отказываться от ENTER_FRAME я пока не собираюсь - слишком сомнительны условия.
Да, про реалтайм мморпг, что я хотел сказать:
если фпс вдруг падает, то ENTER_FRAME реже рассылается в единицу времени. Если он реже рассылается, значит идет меньше пересчетов, но игровые константы не меняются, то есть попросту говоря в игре как бы замедляется время. В обычной синглплеер игре это не очень критично, если на старых машинах в критичные моменты упадет 10 фпс.
Если игра онлайновая, то придав какому нибудь обьекту "а ля" бомба, падающая сверху позицию и ускорение - она полетит вниз, и при столкновении с землей она взорвется. При подобном падении фпс эта бомба взорвется до соприкосновения с землей, что вызовет негодования у игрока. В случае с таймером - игра пойдет менее плавно, рывками, но бомба упадет именно в срок. Так понятней, что я имел ввиду?