|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
|
частота выполнения по EnterFrame... кратность
например, есть код, который выполняется 1 раз в 2 кадра
т.е. этот код будет каждые 2 кадра вызываться... если поставить _delay == 1, то будет каждый кадр... проблема в том, что каждый кадр - это слишком быстро, а каждые 2 кадра - это слишком медленно. Как сделать, чтобы как будто раз в 1.5 кадра вызывалось? может можно как-нибудь поменять fps самого Sprita, не меняя fps всего Stage?
|
|
|||||
Как раз про твою проблему https://www.youtube.com/watch?v=zr3YuhgpuYg
Если надо что-то выполнять через определенные промежутки времени, используй таймер
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
|
таймер до этого стоял... на 45мс, но он глючит (иногда быстрее-медленнее на момент становится), не совсем с одинаковыми промежутками срабатывает... видимо из-за того, что сильно часто. Поменял на EnterFrame - стало равномерно, но теперь не могу подогнать скорость до нужной по EnterFrame... получается, что отдельно у каждого DisplayObjecta нельзя менять скорость кадров?
|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
таймер то тикает равномерно просто флэш скорее всего не успевает обновить экран из-за низкого fps.
Если таймер тикает раз в 45 ms, то fps должен быть не меньше 23(1000/45).А лучше брать с запасом 30+ Цитата:
Вообще завязываться на enterframe дурная практика т.к. в зависимости от нагрузки он может тикать сильно медленнее заявленного fps. |
|
|||||
Цитата:
Цитата:
Завязываться на EnterFrame это не дурная практика, а самая обычная, используемая везде. Единственное, что нужно усорвешенствовать обновление по EnterFrame и добавить замер длительности предыдущего кадра (delta time), и все расчеты производить с учетом этой величины
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
tween=new Tween(null,"",None.easeNone,0,1,0.3,true); tween.addEventListener(TweenEvent.MOTION_CHANGE,update); tween.start(); private function update(e:TweenEvent):void { // обновляем анимацию в зависимости от tween.position if (tween.position==1) { tween.stop(); tween.removeEventListener(TweenEvent.MOTION_CHANGE,update); tween=null; } } |
|
|||||
Цитата:
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
хочешь сказать он втихаря подсовывает что-то на стейдж в надежде что никто его выкидыши не зачистит?
|
|
|||||
Не понял что ты хотел сказать. Зачем ему что-то подсовывать на стейдж? Во флеше всё обновление завязано на кадры. И события проходят тоже в кадрах. Тут и твины и таймеры зависят от FPS. Поэтому delta time это самое верное решение, и не придется городить никаких огородов
__________________
Ко мне можно и нужно обращаться на ты) |
Часовой пояс GMT +4, время: 04:47. |
|
« Предыдущая тема | Следующая тема » |
|
|