Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вопрос про getTimer(); (http://www.flasher.ru/forum/showthread.php?t=120453)

scarbo 22.01.2009 02:28

Цитата:

И можете ли вы дать пример глюка clearInterval()?
Ха,была у меня такая проблема,и я тут её решение несколько раз спрашивал,но увы.А сейчас хотел ответить, а проблему и решил.Так что забираю свои слова про clearInterval() обратно.Но getTimer()+onEnterFrame() реально точнее,и я просто написал себе класс scarbo_interval() и им пользуюсь.Но это дело вкуса.

etc 22.01.2009 12:52

У getTimer() погрешность, как выяснилось, тоже будь здоров.

DarkLight 22.01.2009 13:51

Хм, у getTimer наличествует некоторая стартовая погрешность, плюс в любой момент времени при считывании в пределах точности системного таймера (20 мс). Накопляемой погрешности у getTimer я не встречал.

etc 22.01.2009 14:00

Цитата:

Сообщение от DarkLight (Сообщение 792816)
Хм, у getTimer наличествует некоторая стартовая погрешность, плюс в любой момент времени при считывании в пределах точности системного таймера (20 мс). Накопляемой погрешности у getTimer я не встречал.

А мы встречали. Особенно заметно это в игре, после трех часов игры разница между двумя Date (стартовым и текущим) и значением getTimer() доходила до 25 секунд, что приводило к полной рассинхронизации.

scarbo 22.01.2009 14:11

и что же тогда предпочесть?

etc 22.01.2009 14:14

Свой getTimer, возвращающий разницу между стартом и текущим временем.

chingachgoog 22.01.2009 14:53

Цитата:

Сообщение от __etc (Сообщение 792819)
А мы встречали. Особенно заметно это в игре, после трех часов игры разница между двумя Date (стартовым и текущим) и значением getTimer() доходила до 25 секунд, что приводило к полной рассинхронизации.

А в какую сторону была разница? getTimer() спешил или отставал от разницы, высчитанной между двумя Date?

etc 22.01.2009 15:06

Зависит от железа, версии плеера и операционки. Может отставать, может убегать.
Под Mac OS X разница равна нулю.

chingachgoog 22.01.2009 15:23

Вообще - это логично. Date вытаскивается из операционной среды, а getTimer() высчитывается самим ФП (как именно - понять трудно. Одно дело - он бы только отставал - это еще можно объяснить, а вот когда еще и убегать может... Выходит, что во ФП свои автономные часы, независимые от операционной среды).

DarkLight 22.01.2009 18:38

Цитата:

А мы встречали. Особенно заметно это в игре, после трех часов игры разница между двумя Date (стартовым и текущим) и значением getTimer() доходила до 25 секунд, что приводило к полной рассинхронизации.
Получаем погрешность 0,23% в общей сложности. если не сохранять предыдущий результат, а считать относительный - это пренебрежимо мало. Погрешность setInterval 3-20%. Ощутимая разница. а Date абсолютный различен, а относительный - точнее конечно, но ненамного.


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

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