Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.12.2013, 08:52
hebep1982 вне форума Посмотреть профиль Отправить личное сообщение для hebep1982 Найти все сообщения от hebep1982
  № 1  
Ответить с цитированием
hebep1982

Регистрация: Dec 2013
Сообщений: 35
По умолчанию Стабильное циклическое выполнение кода

Вопрос такой. Ставлю эксперимент чтоб понять как лучше реализовать циклическое выполнение основной функции программы. Есть 3 варианта, судя по книге и гайдам, с помощью основной временной шкалы,методом getTimer() и методом setInterval(). Дело в том что по задумке нужно именно замедлять течение времени с ним связана скорость расчетов падения, движения и тд. некоторых объектов(когда пользователь активирует это замедление). Проблема в том что при setInterval() начинаются рывки и какая-то нестабильность в движении, то быстрее то медленней. Как с этим бороться? setInterval() использую с значением 100...

P.S. Еще со времен JavaScript знаю что данный метод не стабилен и не может обеспечить "плавность" и "стабильность" во Flash я так понимаю тоже самое? Как быть?

Старый 29.12.2013, 12:53
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Привязывайтесь к фпс флэшки, то есть onEnterFrame. В нём уже берете значение прошедшего с последнего обновления времени. Это значение используйте для вычислений.

setInterval для основного апдэйта приложения — плохая практика. В любом же случае у вас рендеринг будет, к примеру, 30 кадров в секунду, а интервал будет по три раза на один рендеринг прогоняться, а это бессмысленно в большинстве случаев.

Нужно динамически менять скорость приложения? Физики и т.п.? Можно попробовать так:

Код AS1/AS2:
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

Старый 29.12.2013, 14:07
hebep1982 вне форума Посмотреть профиль Отправить личное сообщение для hebep1982 Найти все сообщения от hebep1982
  № 3  
Ответить с цитированием
hebep1982

Регистрация: Dec 2013
Сообщений: 35
Дело в том что я застопорил основную шкалу а fps у меня 10-12 для моей скромной анимации вполне сносно, более высокая чрезмерно напрягает проц мобилы . В программе два кадра инициализация и работа где все делается через setInterval. Но ваша идея ясна, благодарю вас. Думаю, учитавая ваш совет, вернуться к 3 кадровому циклу (инициализация, обработка , вывод).

Старый 29.12.2013, 15:06
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Проц мобилы? Это приложение для мобильников?

hebep1982, мне кажется, вам нужно с самого начала скорректировать "курс" разработки / обучения в сторону as3 / AIR.
__________________
hauts.ru

Старый 29.12.2013, 20:46
hebep1982 вне форума Посмотреть профиль Отправить личное сообщение для hebep1982 Найти все сообщения от hebep1982
  № 5  
Ответить с цитированием
hebep1982

Регистрация: Dec 2013
Сообщений: 35
ну не то чтобы для мобильников Да уже присматриваюсь Думаю с начала года начну AS3 учить а то действительно AS2 уже устарел и учебников на бумаге уже не найти. Спасибо в любом случае В AS3 эти проблемы решены?

Старый 29.12.2013, 20:59
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 6  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Цитата:
В AS3 эти проблемы решены?
Мне кажется, у вас будет основной проблемой изучить ас3 до такой степени, чтобы находить в нем реальные проблемы.

В общем я к тому, что проблемы, как таковой, в этой теме нет. Решение я уже писал
__________________
hauts.ru

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:06.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.