1

我有一个带有垂直轴的条形图

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

我希望垂直轴上的标签是可点击的。因此,当用户单击标签时,会触发单击事件,我可以对其进行处理。我对点击栏本身不感兴趣(我知道如何实现)

我尝试向 Mouse.Click 类型的 CategoryAxis 添加一个事件侦听器,但没有被触发。

任何帮助表示赞赏。

4

2 回答 2

1

好的,我让它工作了。我将发布答案,以便其他有类似要求的人受益。所以,Timofei Davydik 帮助我找到了正确的方向。我创建了一个名为MyLabelRendererextends的 ActionScript 类ChartLabel。在它的构造函数中,我添加了所有的事件监听器,比如我需要的鼠标点击事件。

这是棘手的部分。感谢 KB(朋友)提供正确的实例化。在我的图表所在的主应用程序中,我必须以这种方式实例化我的新类的一个实例MyLabelRenderer

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

然后您可以通过以下方式将其分配给 AxisRenderer 对象:

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

祝你好运...

于 2012-04-12T14:08:12.760 回答
0

我建议如下:

  1. 创建您的自定义轴渲染器(扩展AxisRenderer)并将其分配给您正在使用的verticalAxisRenderer样式属性。Axis
  2. 创建自定义标签渲染器并将其分配给labelRenderer轴渲染器的属性。您可以在其中添加点击侦听器。注意:标签渲染器必须实现 IDataRenderer 和 IFlexDisplayObject 接口。
于 2012-04-10T22:07:21.693 回答