2012-03-26 122 views
2

我正在嘗試自定義Flex工具提示la this tutorial。它基本上只是一堆顯示顏色圖例的標籤。這一切都工作正常,以及當從提示按鈕事件toolTipCreate顯示:Adob​​e Flex - 按鈕單擊顯示自定義工具提示

<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)"/> 
+0

請參閱此鏈接可能會幫助完整http://livedocs.adobe.com/flex/3/html/help.html?content=tooltips_4.html – Triode 2012-03-26 03:41:02

+0

@ rajesh.adhi:我已經看過那個頁面百萬次,並且這些示例都沒有顯示基於按鈕點擊的自定義工具提示。 – istrasci 2012-03-26 14:30:24

+0

服裝的意思是,你可以展示工具提示,但是你想給這件衣服蒙上皮嗎? – Triode 2012-03-26 14:35:14

回答

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

所以沒有什麼短的猴子補丁會得到這個正常工作。發現這個bug的信息(和相應的補丁)in this blog post。這篇文章談到了Flex 3,但這個bug在Flex 4.5.1中仍然沒有解決。

+0

你有沒有想過呢?我使用4.15,沒有'ToolTipManager.showToolTip(component)'方法。你會認爲會有的。 – 2016-12-15 19:44:14

+0

不,我從來沒有想過,但我不再使用Flex。 – istrasci 2016-12-15 21:51:30