2012-04-10 59 views
1

點擊事件添加到軸標籤我有這樣如何在Flex中

<mx:verticalAxis > 
    <mx:CategoryAxis id="catAxis" title="Employee" categoryField="id"/> 
</mx:verticalAxis> 

我會爲縱軸上的標籤可以點擊條形圖與垂直軸。所以當用戶點擊一個標籤時點擊事件就會觸發,我可以用它做點什麼。我沒有興趣點擊欄本身(我知道如何做到這一點)

我試着添加一個事件監聽器到類型爲Mouse.Click的CategoryAxis,但沒有人被激發。

任何幫助表示讚賞。

回答

1

好吧,我把它工作。我會公佈答案,以便其他有相似要求的人可以受益。所以,Timofei Davydik幫助我找到了正確的方向。我創建了一個名爲MyLabelRenderer的ActionScript類,它擴展了ChartLabel。在其構造函數中,我添加了所有事件偵聽器,例如我需要的鼠標單擊事件。

這是棘手的部分。謝謝KB(朋友)提供正確的實例。在主要應用在我的圖是我必須初始化我的新類MyLabelRenderer的一個實例是這樣的:

<mx:verticalAxisRenderers> 
    <mx:AxisRenderer axis="{catAxis}" labelRenderer="{myLabelRenderer}"/> 
</mx:verticalAxisRenderers> 

好運:

private var myLabelRenderer:ClassFactory = new ClassFactory(MyLabelRenderer); 

然後你就可以用這種方式把它分配給AxisRenderer將對象...

+0

注意:你也應該能夠做到這一點,無需創建一個變量,並使用大括號綁定表達式,通過使用一個字符串指定'labelRenderer',該字符串是您的類的完全限定包名稱。我通常會這樣做''Lists',它是'itemRenderer'屬性,它也期望'ClassFactory'。我想知道爲什麼這會起作用...... ClassFactory的文檔解釋如下:「MXML讓你使用下面的語法:MXML允許你使用下面的語法:MXML: 2012-04-13 06:30:09

0

我建議如下:

  1. 創建自定義軸渲染(延伸AxisRenderer),並將其分配給您正在使用的AxisverticalAxisRenderer樣式屬性。
  2. 創建自定義標籤渲染器並將其分配給軸渲染器的labelRenderer屬性。您可以在其中添加點擊偵聽器。 注意:標籤渲染器必須實現IDataRenderer和IFlexDisplayObject接口。
+0

@Timofie謝謝你的建議,但我不太清楚我理解你的方法。你能否提供一些更詳細的信息? – Alaa 2012-04-11 14:46:04