Точность синхронизации во Flash

Кто-нибудь знает, насколько точна синхронизация вспышки и ее способность определять частоту обновления клиентского монитора? Мне нужно рассчитать продолжительность времени с точностью до 10 миллисекунд времени отклика. Кроме того, если он выключен, есть ли способ, возможно, откалибровать ответ на основе частоты обновления монитора и действия, чтобы убедиться, что значение максимально приближено к точному? Любая информация будет полезной! Еще лучше было бы несколько примеров существующих тестов производительности.

Обновление:

Я нашел этот пост, который полезен, но мне хотелось узнать, есть ли еще что-нибудь добавить по этой теме.

AS3: насколько точен метод getTimer () а класс Timer?

http://www.kaourantin.net/2006/05/frame-rates-in-flash-player.html


person abritez    schedule 13.09.2010    source источник


Ответы (2)


Невозможно обнаружить это, а Flash Player не использует vsync, поэтому вычисление времени обновления не имеет большого смысла.

Все зависит от того, для чего вы хотите его использовать. Если вы просто синхронизируете что-то на экране, используйте getTimer, поскольку он точен до 1 мс - для этого вам абсолютно не нужно знать частоту обновления монитора.

Кроме того, класс Timer ненадежен для вызовов, поэтому либо используйте собственный класс таймера, либо используйте getTimer для onEnterFrames (наиболее точный способ обновления экрана).

person zeh    schedule 13.09.2010
comment
Небольшая поправка: Таймер не идеален для отсчета времени, но катить свой собственный не лучше (или хуже). - person fenomas; 14.09.2010
comment
Исправление к исправлению: будет, потому что, если вы построите его правильно, вы сможете по крайней мере избежать совокупного смещения, созданного классом Timer (computus.org/journal/?p=25). - person zeh; 14.09.2010

Вы не получите частоту обновления монитора от Flash, даже в AIR. Да, кадры могут рендериться в разное время (особенно при большой нагрузке). AFAIK, ваш лучший источник точного времени - getTimer (). Анимация, основанная на getTimer () в ENTER_FRAME, является плавной (при условии, что частота кадров достаточно высока), хотя частота кадров может варьироваться.

Изменить: ваш код может выполняться между сменами кадров, поэтому установите высокую частоту кадров и сохраняйте небольшую нагрузку. Таким образом, у вас будет больше шансов вовремя ответить. Я считаю, что точность getTimer () составляет до 1 мс, но это немного сложно проверить. Запустить программу на несколько часов, а затем сравнить getTimer () и фактическое время? ..

person alxx    schedule 13.09.2010