2012-01-17 3 views
0

Я работаю над игрой. Геймплей основан на очень небольшом промежутке времени (у вас есть всего 5 секунд, чтобы сделать действие). Мой таймер отлично работает в Flash Player, у меня есть 5 секунд. В веб-браузере (firefox, safari ..) 5-секундный таймер теперь составляет 8 секунд.Flash Game: getTimer неточно

Как это решить? Вот мой код, где я отображения времени:

private function updateTimer(e:TimerEvent) 
{ 
    if (this.timer.currentCount < 500) 
    { 
     var centiemes:int = 100 - Math.floor(this.timer.currentCount) % 100; 
     var secondes:int = 4 - Math.floor(this.timer.currentCount/100) % 60; 

     this.txtTemps.text = ToolBox.zeroFill(secondes.toString(), 2) + ":" + ToolBox.zeroFill(centiemes.toString(), 2); 
    } 
    else 
    { 
      this.txtTemps.text = "00:00"; 
      this.timer.stop();; 
    } 
} 

Спасибо Вам!

+1

Такая же проблема, как это? http://stackoverflow.com/questions/1014009/as3-how-accurate-are-the-gettimer-method-and-the-timer-class – MrKiane

+0

Нет, похоже, что Adobe должна исправить это. Похоже, что таймер был поставлен потому, что частота кадров была основана на процессоре и может быть разной. –

ответ

3

Да Таймер & setInterval не точен.

Для получения точного времени вы можете работать с вычислением дельта между кадрами & или использовать технику, которую команда Audiotool использует и работает с аудиофайлом. Вы можете найти больше информации here и here.

+0

Я посмотрю на эти ссылки! Благодаря ! –

Смежные вопросы