flex-timer在rollOver上触发

时间:2010-11-18 11:36:13

标签: flex timer

我在flex的弹出按钮上有一个rollOver事件。我希望菜单在翻转时打开。但是如果用户不小心将鼠标放在组件上,则不应显示菜单。所以在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 个答案:

答案 0 :(得分:1)

是的,但是只提供延迟,而不是重复计数,计时器永远继续,只调度TimerEvent.TIMER事件。

要么监听TimerEvent.TIMER事件,要么让构造函数接受这样的参数:new Timer(3000,1)其中1是重复计数。

答案 1 :(得分:1)

你也可以用这样的东西..

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

setTimeout(3000,functionName);
}