Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с Timer (http://www.flasher.ru/forum/showthread.php?t=133266)

ekeeper 01.12.2009 12:27

Проблема с Timer
 
вопрос о таймерах

Код AS3:

          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

Цитата:

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

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


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

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