Adobe Flex - 在按钮单击时显示自定义工具提示

时间:2012-03-26 02:36:05

标签: flex custom-controls tooltip

我正在尝试制作自定义Flex工具提示la this tutorial。它基本上只是一堆显示颜色图例的标签。当工具提示从按钮事件toolTipCreate

显示时,这一切都很好
<mx:Button label="ToolTip example" toolTip=" "
  toolTipCreate="toolTipCreateHandler(event)" />

但是,我想在单击按钮时显示工具提示,而不是等待实际的工具提示延迟。 (从这个意义上说,我甚至不确定术语“工具提示”是否已经适用,但那是另一次)。我调用相同的处理程序,并将实例化的ToolTipEvent作为参数传递:

<mx:Button label="ToolTip example" toolTip=" "
  click="toolTipCreateHandler(new ToolTipEvent(ToolTipEvent.CREATE, false, false, instanceOfMyCustomToolTip))" />

然而,这不起作用,它正在推动我试图弄清楚如何做到这一点。这似乎不是一件罕见的事情,但我在互联网上找到的每个例子都使用实际的工具提示延迟而不是按钮点击。任何帮助将不胜感激。

P.S。 - 我想把它作为一个专门的工具提示,所以我可以尝试获得一个小小的“气球尾巴”as shown here

编辑:我也在按钮的点击事件中尝试ToolTipManager.createToolTip,但这也不起作用。

<mx:Button id="ttt" label="Tooltip test"
  click="ToolTipManager.createToolTip(' ',75,75,'errorTipBelow',instanceOfMyCustomToolTip)"/>

1 个答案:

答案 0 :(得分:2)

经过大量研究,目前的形式是不可能的。以下是 的工作原理:

<mx:Button id="ttt" label="Tooltip test"
  click="createTooltip()"/>

private function createTooltip():void {
  ToolTipManager.toolTipClass = MyCustomToolTip;
  ToolTipManager.createToolTip('any text here');
}

此时,ToolTipManager 使用ToolTipManager.toolTipClass中指定的类创建新的工具提示。但是,由于Adobe Flex SDK中尚未解决的错误,ToolTipManager.createToolTip忽略此类并始终使用默认类ToolTip

所以没有一个猴子补丁可以让它正常工作。找到有关此错误(及相应补丁)in this blog post的信息。这篇文章谈到了Flex 3,但是从Flex 4.5.1开始,这个bug仍然没有得到解决。