![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Dec 2013
Сообщений: 35
|
Вопрос такой. Ставлю эксперимент чтоб понять как лучше реализовать циклическое выполнение основной функции программы. Есть 3 варианта, судя по книге и гайдам, с помощью основной временной шкалы,методом getTimer() и методом setInterval(). Дело в том что по задумке нужно именно замедлять течение времени с ним связана скорость расчетов падения, движения и тд. некоторых объектов(когда пользователь активирует это замедление). Проблема в том что при setInterval() начинаются рывки и какая-то нестабильность в движении, то быстрее то медленней. Как с этим бороться? setInterval() использую с значением 100...
P.S. Еще со времен JavaScript знаю что данный метод не стабилен и не может обеспечить "плавность" и "стабильность" во Flash я так понимаю тоже самое? Как быть? |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Привязывайтесь к фпс флэшки, то есть onEnterFrame. В нём уже берете значение прошедшего с последнего обновления времени. Это значение используйте для вычислений.
setInterval для основного апдэйта приложения — плохая практика. В любом же случае у вас рендеринг будет, к примеру, 30 кадров в секунду, а интервал будет по три раза на один рендеринг прогоняться, а это бессмысленно в большинстве случаев. Нужно динамически менять скорость приложения? Физики и т.п.? Можно попробовать так: var prevTime = getTimer(); var timeSpeed = 1; // Коэффициент скорости течения времени function globalUpdateMethod(){ var currentTime = getTimer(); var delta = currentTime - prevTime; prevTime = currentTime; myPhysics.advanceTime( delta * timeSpeed ) } this.onEnterFrame = globalUpdateMethod;
__________________
hauts.ru |
|
|||||
|
Регистрация: Dec 2013
Сообщений: 35
|
Дело в том что я застопорил основную шкалу а fps у меня 10-12 для моей скромной анимации вполне сносно, более высокая чрезмерно напрягает проц мобилы
. В программе два кадра инициализация и работа где все делается через setInterval. Но ваша идея ясна, благодарю вас. Думаю, учитавая ваш совет, вернуться к 3 кадровому циклу (инициализация, обработка , вывод). |
|
|||||
|
Регистрация: Dec 2013
Сообщений: 35
|
ну не то чтобы для мобильников
Да уже присматриваюсь Думаю с начала года начну AS3 учить а то действительно AS2 уже устарел и учебников на бумаге уже не найти. Спасибо в любом случае В AS3 эти проблемы решены? |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Цитата:
В общем я к тому, что проблемы, как таковой, в этой теме нет. Решение я уже писал ![]()
__________________
hauts.ru |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|