2010-04-13 83 views
0

我想取消一個工具提示事件(我只希望它顯示鼠標懸停在某個區域上),並且似乎無法弄清楚。我試過stopPropagation,preventDefault,並停止ImmediatePropagation,但他們都沒有工作。flex 3取消工具提示事件

下面的代碼我使用:

 private function toolTipCreateHandler(event:ToolTipEvent):void { 
      if(event.currentTarget.mouseX < 130) { 
       var tooltip:PhotoToolTip = new PhotoToolTip(); 
       tooltip.src = event.currentTarget.toolTip; 
       event.toolTip = tooltip; 
      } 
      else { 
       event.stopImmediatePropagation(); 
      } 
     } 

任何想法?

感謝

回答

0

第一步,添加一個事件監聽當鼠標離開你想要的工具提示的區域進行檢測,運行功能和標題類似爲「toolTipDestroyer」

第二步,您需要調用提示經理

private function toolTipDestroyer():void { 
    if (myToolTip) { 
     ToolTipManager.destroyToolTip(myToolTip); 
     myToolTip= null; 
    } 
} 

同樣的破壞方法,只是可讀性,給你提示一些其他的名字不是「提示」,你會發現它更容易在你的代碼後跟進。我的例子將其命名爲「myToolTip」

+0

對於我的情況,我認爲只需調用destroyToolTip toolTipCreateHandler函數是最有意義的,因爲如果它不在指定的區域內,我不希望它顯示。 這裏的問題是與textArea綁定的事件,因此,mouseOut將不夠用。 – gmoniey 2010-04-13 16:24:44

+0

如果這項工作去爲它。我承認我沒有測試它,在我看來,它似乎不適用於Flex,因爲沒有OnHover事件。原來, – invertedSpear 2010-04-13 16:47:48

+0

沒有奏效。問題在於,如果用戶尚未將鼠標懸停在正確的區域上,則工具提示實例爲空。 – gmoniey 2010-04-14 06:36:54