Цитата:
Сообщение от nelco
таймер до этого стоял... на 45мс, но он глючит (иногда быстрее-медленнее на момент становится), не совсем с одинаковыми промежутками срабатывает... видимо из-за того, что сильно часто. Поменял на EnterFrame - стало равномерно, но теперь не могу подогнать скорость до нужной по EnterFrame... получается, что отдельно у каждого DisplayObjecta нельзя менять скорость кадров?
|
45 это не слишком часто. У TimerEvent можно вызывать метод updateAfterEvent() в обработчике. Это вынудит флеш плеер перерисовать всю картинку по событию. Тогда все будет работать плавно

Код AS3:
private function onTimer(e:TimerEvent):void {
e.updateAfterEvent();
}
Цитата:
|
Вообще завязываться на enterframe дурная практика т.к. в зависимости от нагрузки он может тикать сильно медленнее заявленного fps.
|
А ты бы какое решение предложил? Во флеше даже таймер зависит от FPS. Поток то один, никуда от этого не денешься.
Завязываться на EnterFrame это не дурная практика, а самая обычная, используемая везде. Единственное, что нужно усорвешенствовать обновление по EnterFrame и добавить замер длительности предыдущего кадра (delta time), и все расчеты производить с учетом этой величины