2011-09-27 80 views
0

我創建了一些在我的Flex應用程序中像工具提示一樣工作的東西。當我滾動某個項目渲染器時,我彈出一個新的控件,將它放置,然後在推出時將其刪除。操作的順序是這樣的:忽略鼠標焦點在工具提示?

  1. 翻滾事件處理程序觸發。
  2. 將工具提示添加到this.systemManager.topLevelSystemManager.toolTipChildren。
  3. 在創建完成我的工具提示時,設置x,設置工具提示的y座標(在創建完成後,因爲它們是動態的,所以計算寬度和高度)。
  4. 展開觸發的事件處理程序。
  5. 移除工具提示。

當我將x和y座標設置爲當前鼠標位置的x + 10,y + 10時,此工作正常。我想添加一些重新定位該工具提示的內容,如果它將被部分地畫在屏幕外。我添加了一個步驟來計算它是否會從屏幕上移出,並且在工具提示被切斷時重新定位。

我的解決方案的問題似乎是,它現在運行在無限循環的重繪中,因爲將工具提示添加到鼠標下面的屏幕會觸發項目渲染器上的「rollOut」。這觸發了去除工具提示,並從1

所以我想我的問題是重新開始的過程中結束:有沒有辦法忽略提示,因此並不需要將鼠標從項目渲染焦點離開該現在在它下面?或者還有其他什麼好的解決方案?提前致謝。

回答

0

在發佈這個問題之前大概應該多搜索一下。對於其他人來說,我只需要在我的工具提示上設置mouseEnabled=falsemouseChildren=false選項。

0

一種方法是確保繪製的工具提示也不在鼠標下。

或者,您可以添加一個短暫的延遲,然後在rollOut之後實際上會消失。然後,如果新工具提示的mouse_over被觸發,您可以禁用淡入淡出。

這樣,如果鼠標離開觸發工具提示和工具提示的DisplayObject,工具提示只會褪色。

0

我會檢查currentTarget當前目標性質的事件,知道是誰派它。

相關問題