忽略鼠标焦点在工具提示上?

时间:2011-09-27 13:25:41

标签: flex events actionscript tooltip

我在Flex应用程序中创建了类似于ToolTip的东西。当我滚动某个项目渲染器时,我会弹出一个新控件,定位它,并在滚出时将其删除。操作顺序如下:

  1. 翻转事件处理程序已触发。
  2. 将工具提示添加到this.systemManager.topLevelSystemManager.toolTipChildren。
  3. 在我的工具提示创建完成后,设置x,设置工具提示的y坐标(创建完成后,计算宽度和高度,因为它们是动态的)。
  4. 推出事件处理程序已触发。
  5. 删除工具提示。
  6. 当我将x和y坐标设置为当前鼠标位置的x + 10,y + 10时,这很好用。我想添加一些重新定位工具提示的东西,如果它将部分地从屏幕上绘制出来的话。我添加了一个步骤,用于计算是否将从屏幕上绘制,并重新定位工具提示,如果它将被切断。

    我的解决方案的问题似乎是它现在在无限循环的重绘中运行,因为将工具提示添加到鼠标下方的屏幕会触发项呈示器上的“rollOut”。这会触发删除工具提示,并从1开始重新处理。

    所以我猜我的问题是:有没有办法忽略工具提示,所以它不会让鼠标焦点远离现在在它下面的项目渲染器?或者还有其他好的解决方案吗?提前谢谢。

3 个答案:

答案 0 :(得分:0)

一种方法是确保绘制的工具尖端也不在鼠标下面。

或者您可以在rollOut之后的工具提示实际消失之前添加一个短暂的延迟。然后,如果触发新工具提示的mouse_over,则可以禁用淡入淡出。

这样,只有当鼠标离开触发工具提示和工具提示的DisplayObject时,工具提示才会淡出。

答案 1 :(得分:0)

在发布此问题之前,可能应该搜索一下。对于其他人来说,我只需要在工具提示上设置mouseEnabled=falsemouseChildren=false选项。

答案 2 :(得分:0)

我会检查您的活动的 currentTarget 目标属性,以了解谁发送了它。