我在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*/
}
}警报“时间到了”永远不会显示,你知道为什么我的计时器事件不工作吗?
发布于 2010-11-18 22:00:47
是的,但通过只提供延迟,而不提供重复计数,计时器将永远持续下去,只调度TimerEvent.TIMER事件。
或者监听TimerEvent.TIMER事件,或者让构造函数像这样接受参数: new Timer(3000,1),其中1是重复计数。
发布于 2011-04-23 01:03:08
你也可以使用像这样的东西。
on rollover method(): {
// this sleeps for 3000 milliseconds and then call the method functionName.so
implement ur functionality inside "functionName"
setTimeout(3000,functionName);
}https://stackoverflow.com/questions/4214310
复制相似问题