2010-11-18 69 views
1

我在flex中的彈出按鈕上有一個rollOver事件。我希望菜單在翻滾時打開。但是,如果用戶不小心將鼠標放在組件上,則不應顯示菜單。所以在rollOver上,我想啓動一個計時器(等待半秒鐘),然後檢查用戶是否仍在彈出按鈕(rollOut未被觸發)。flex-timer在rollOver上觸發

到目前爲止,我的示例代碼:

   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*/ 
      } 
     } 

警報「時間到了」從未顯示,任何想法,爲什麼我的定時器事件不起作用?

回答

1

是的,但只通過提供延遲,而不是重複計數,計時器永遠持續,只調度TimerEvent.TIMER事件。

不是要偵聽TimerEvent.TIMER事件,就是讓構造函數採用如下參數:new Timer(3000,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); 
}