|
|
|||||
Цитата:
|
|
|||||
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
Цитата:
|
|
|||||
Таймер может вызываться чаще, чем фреймрейт. Простой тест:
package { import flash.display.Sprite; import flash.events.Event; import flash.events.TimerEvent; import flash.utils.getTimer; import flash.utils.Timer; /** * ... * @author KumoKairo */ public class Main extends Sprite { private var _prevEnterFrameTime:Number; private var _prevTimerTime:Number; private var _timer:Timer; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); addEventListener(Event.ENTER_FRAME, onEnterFrame); _prevEnterFrameTime = getTimer(); _timer = new Timer(50); _timer.addEventListener(TimerEvent.TIMER, onTimer); _timer.start(); _prevTimerTime = getTimer(); } private function onTimer(e:TimerEvent):void { trace("TIMER event: " + (getTimer() - _prevTimerTime)); _prevTimerTime = getTimer(); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point } private function onEnterFrame(e:Event):void { trace("ENTER_FRAME Event: " + (getTimer() - _prevEnterFrameTime)); _prevEnterFrameTime = getTimer(); } } } Цитата:
Меняем до 60ти: Цитата:
Цитата:
Цитата:
|
|
|||||
Ну вот для реализации пакмана я бы использовал таймер. Да и вообще, прочитав множество вопросов на SO сложилось впечатление, что народ там более терпим к таймерам и автору (вопроса) всегда дается право выбора
Вот тут например пишут что таймер есть смысл использовать если нужно обрабатывать информацию чаще, чем может справится с этим ENTER_FRAME или когда требуется производить фиксированное количество изменений за заданное время. Более того, предлагают реализовать главный класс с таймер - хендлером, которого можно кормить объектами, требующими централизованного обновления по таймеру. При этом нигде не говорят что таймеры это плохо и их нужно бояться как огня) |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
ENTER_FRAME вызывается когда экран может перерисоваться. Перерисоваться ему препятствовать низкое ФПС у флешки или сложные расчеты (тормоза).
В ENTER_FRAME сверяется дельта времени. Приложение не должно меняться в поведении, независимо от 12 или 60 ФПС.
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 00:56. |
|
« Предыдущая тема | Следующая тема » |
|
|