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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.02.2012, 13:46
dsQuadro вне форума Посмотреть профиль Отправить личное сообщение для dsQuadro Посетить домашнюю страницу dsQuadro Найти все сообщения от dsQuadro
  № 1  
Ответить с цитированием
dsQuadro
 
Аватар для dsQuadro

Регистрация: Feb 2008
Адрес: Москва
Сообщений: 238
Отправить сообщение для dsQuadro с помощью ICQ
По умолчанию таймер выполняется значительно дольше чем нужно

Добрый день!
нарисовалась такая проблемка: создаю таймер на 200 мс, засекаю время с момента старта до момента выполнения, получается 230 мс (меряю с помощью new Date().getTime()), при этом при больших задержках (около 2000 мс) таймер наоборот срабатывает быстрее чем надо.... как можно обойти этот момент?

Старый 04.02.2012, 13:57
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
1) Критична ли разница между 200 мс и 230 мс для вашего приложения?
2) На выполнения Date().getTime() тоже нужно время.

Старый 04.02.2012, 14:17
dsQuadro вне форума Посмотреть профиль Отправить личное сообщение для dsQuadro Посетить домашнюю страницу dsQuadro Найти все сообщения от dsQuadro
  № 3  
Ответить с цитированием
dsQuadro
 
Аватар для dsQuadro

Регистрация: Feb 2008
Адрес: Москва
Сообщений: 238
Отправить сообщение для dsQuadro с помощью ICQ
да, критично... нужно реализовать одинаковое течение времени на 2 параллельно запущенных флешках... таймеры очень быстро разбегаются... поэтому ориентируюсь на Date, вычисляю время задержки чтобы выполнить действие в нужный шаг и ставлю таймер, но иногда бывает что таймер промахивается из за этих погрешностей(один шаг 100мс)

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

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
Не получится так, нужно синхронизировать в процессе, иначе всё равно разъедется, т.к. событие таймера обрабатывается в фазе обработки событий. При сложной фазе рендеринга обработка события таймера будет отложена до соответствующей фазы обработки кода.
Супер идеального совпадения всё равно не будет, но можно сделать очень ровно и красиво, вам нужно регулярно подводить свои таймеры. Если вы хотите грамотно организовать всякие разные анимации и события в разных флешках вам нужно сделать свой менеджер времени и временных интервалов, который будет поддерживать синхронизацию с другим таким же менеджером. Лучше всего это можно сделать при помощи localConnection, этот механизм работает достаточно быстро. Date тоже вариант, но не всегда приемлимый.
Вам необходимо понять что в двух флешках за одну и ту-же минуту реального времени может произойти разное количество кадров.
Категорически советую изучить статью про жизненный цикл компонентов и порядок исполнения кода.
Также прочесть то что думает по этому поводу adobe, и уже оттуда можно попасть на оригинал статьи про жизненный цикл, и там же есть статья Senocular который тоже описывает эти процессы.
__________________
:)

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

Регистрация: Feb 2008
Адрес: Москва
Сообщений: 238
Отправить сообщение для dsQuadro с помощью ICQ
я не очень правильно выразился... синхронизировать надо не 2 флешки а 2-х клиентов на разных компьютерах... соответственно надо привязываться к чему то наиболее постоянному на разных компьютерах. опытным путем убедился что таймер на подходит, а Date идет более менее постоянно...
за статейку про жизненный цикл спасибо! кое чт оновое узнал, но речь немного не об этом... о отрисовке пока речь не идет, она будет по отдельному таймеру делаться. пока я говорю именно о шагах логики.

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

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

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


 


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


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