1

このように縦軸の棒グラフがあります

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

縦軸のラベルはクリック可能にします。したがって、ユーザーがラベルをクリックすると、クリックイベントが発生し、それを使って何かを行うことができます。私はバー自体をクリックすることに興味がありません(私はそれを達成する方法を知っています)

Mouse.ClickタイプのCategoryAxisにイベントリスナーを追加しようとしましたが、何も発生しません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

OK、動作しました。同様の要件を持つ他の人が利益を得ることができるように、私は答えを投稿します。それで、TimofeiDavydikは私が正しい方向を見るのを手伝ってくれました。MyLabelRendererを拡張するという名前の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. カスタム軸レンダラー(extend)を作成し、使用しているスタイルプロパティにAxisRenderer割り当てます。verticalAxisRendererAxis
  2. labelRendererカスタムラベルレンダラーを作成し、それを軸レンダラーのプロパティに割り当てます。その中にクリックリスナーを追加できます。注:ラベルレンダラーは、IDataRendererおよびIFlexDisplayObjectインターフェイスを実装する必要があります。
于 2012-04-10T22:07:21.693 に答える