flex - таймер срабатывает при RollOver - PullRequest
1 голос
/ 18 ноября 2010

У меня есть событие rollOver для всплывающей кнопки в flex.Я хочу, чтобы меню открывалось при опрокидывании.Но если пользователь случайно наведет курсор мыши на компонент, меню не должно отображаться.Итак, при RollOver я хочу запустить таймер (подождать полсекунды), а затем проверить, что пользователь все еще находится на всплывающей кнопке (rollOut не был запущен).

Мой пример кода пока:

             private function rollOverMenu(event:Event){
            rollOutNow = false;
            var shortDelay:Timer = new Timer(3000);
            shortDelay.addEventListener(TimerEvent.TIMER_COMPLETE, timerCompleteEvent);
            shortDelay.start();
         }

        private function timerCompleteEvent(event:Timer){
            Alert.show("time is up");
            if (!rollOutNow){
                /*open the menu*/
            }
         }

Оповещение "время истекло" никогда не отображается, есть идеи, почему мое событие таймера не работает?

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

вы также можете использовать что-то вроде этого ..

on rollover method(): {
// this sleeps for 3000 milliseconds and then call the method functionName.so     
  implement ur functionality inside "functionName"

setTimeout(3000,functionName);
}
1 голос
/ 18 ноября 2010

Да, но только предоставляя задержку, а не счетчик повторений, таймер включается вечно, только отправляя событие TimerEvent.TIMER.

Либо вместо этого прослушивайте событие TimerEvent.TIMER, либо заставьте конструктор принимать аргументы, подобные следующему: new Timer (3000,1), где 1 - количество повторений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...