PDA

Просмотр полной версии : Проблема с Timer


ekeeper
01.12.2009, 12:27
вопрос о таймерах

public function StartLevelTimer():void
{
level_timer = new Timer( 1 , timeToGo );
level_timer.addEventListener( TimerEvent.TIMER, levelTimerTickHandler );
level_timer.addEventListener( TimerEvent.TIMER_COMPLETE, levelTimerCompleteTickHandler );
level_timer.start();
}

private function levelTimerTickHandler(event:Event):void
{
эта функция уменьшает полоску прогресс-бара
}

private function StopLevelTimer()
{
level_timer.stop();
level_timer.removeEventListener( TimerEvent.TIMER, levelTimerTickHandler );
level_timer.removeEventListener( TimerEvent.TIMER_COMPLETE, levelTimerCompleteTickHandler );
}

private function levelTimerCompleteTickHandler(event:Event):void
{
тут вызывается функция проигрыша уровня - время кончилось
}

timeToGo - время на уровень
например 5000 - 5 секунд условно

так вот на разных компах разное время
при чем не 5 секунд - а 15-20
при чем - сама игра не тормозит, а вот время сильно отличается на разных машинах.

вопрос в том, как сделать чтобы на всех компах работало именно 5 секунд?

nOobCrafter
01.12.2009, 19:01
Timer(delay:Number, repeatCount:int = 0)
Создает новый объект Timer с заданной задержкой и состояниями repeatCount.
мне кажеться у вас в конструкторе ошибка %)

ekeeper
01.12.2009, 19:36
Как раз нет ошибки.
Так сделано чтобы часто вызывалась levelTimerTickHandler чтобы рисовать ползунок у прогресс-бара
Наверное конечно надо delay по больше сделать

bicubic_bublic
01.12.2009, 20:42
полоску прогрес-бара уместнее сделать на ENTER_FRAME
тормозит из-за new Timer( 1 , timeToGo );
каждую миллисекунду обрабатывается какая-то штука, которая еще и перерисовывает
если хочется оставить прогрес-бар в таймере можно хотя бы увеличить время таймера
new Timer( 100 , Math.round(timeToGo / 100) );

ekeeper
01.12.2009, 21:26
полоску прогрес-бара уместнее сделать на ENTER_FRAME
тормозит из-за new Timer( 1 , timeToGo );
каждую миллисекунду обрабатывается какая-то штука, которая еще и перерисовывает
если хочется оставить прогрес-бар в таймере можно хотя бы увеличить время таймера
new Timer( 100 , Math.round(timeToGo / 100) );

Вот это до меня и дошло :)))) спасибо большое :)