![]() |
Стабильное циклическое выполнение кода
Вопрос такой. Ставлю эксперимент чтоб понять как лучше реализовать циклическое выполнение основной функции программы. Есть 3 варианта, судя по книге и гайдам, с помощью основной временной шкалы,методом getTimer() и методом setInterval(). Дело в том что по задумке нужно именно замедлять течение времени с ним связана скорость расчетов падения, движения и тд. некоторых объектов(когда пользователь активирует это замедление). Проблема в том что при setInterval() начинаются рывки и какая-то нестабильность в движении, то быстрее то медленней. Как с этим бороться? setInterval() использую с значением 100...
P.S. Еще со времен JavaScript знаю что данный метод не стабилен и не может обеспечить "плавность" и "стабильность" во Flash я так понимаю тоже самое? Как быть? |
Привязывайтесь к фпс флэшки, то есть onEnterFrame. В нём уже берете значение прошедшего с последнего обновления времени. Это значение используйте для вычислений.
setInterval для основного апдэйта приложения — плохая практика. В любом же случае у вас рендеринг будет, к примеру, 30 кадров в секунду, а интервал будет по три раза на один рендеринг прогоняться, а это бессмысленно в большинстве случаев. Нужно динамически менять скорость приложения? Физики и т.п.? Можно попробовать так: Код AS1/AS2:
|
Дело в том что я застопорил основную шкалу а fps у меня 10-12 для моей скромной анимации вполне сносно, более высокая чрезмерно напрягает проц мобилы :). В программе два кадра инициализация и работа где все делается через setInterval. Но ваша идея ясна, благодарю вас. Думаю, учитавая ваш совет, вернуться к 3 кадровому циклу (инициализация, обработка , вывод).
|
Проц мобилы? Это приложение для мобильников?
hebep1982, мне кажется, вам нужно с самого начала скорректировать "курс" разработки / обучения в сторону as3 / AIR. |
ну не то чтобы для мобильников :) Да уже присматриваюсь :) Думаю с начала года начну AS3 учить а то действительно AS2 уже устарел и учебников на бумаге уже не найти. Спасибо в любом случае :) В AS3 эти проблемы решены?
|
Цитата:
В общем я к тому, что проблемы, как таковой, в этой теме нет. Решение я уже писал :) |
| Часовой пояс GMT +4, время: 04:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.