0

actionscript で個々の凡例項目にアクセスしようとしています (凡例項目はラベルであり、チャート シリーズを識別する色付きのブロックです)。Legend に現在表示されているすべての LegendItems にアクセスできる Legend または Chart のプロパティを知っている人はいますか?

イベントはクリック/ロールオーバーされたLegendItemにアクセスできるため、LegendMouseEventsを使用することでこれが可能になることを知っています。ただし、この場合、イベントに頼ることはできません。

私の最後の手段は、カスタムの伝説をハックすることですが、これには時間がかかります (私は特に持っていません) ので、最初に SO コミュニティにアピールしようと思いました!

みんなありがとう

4

2 に答える 2

1

凡例はコンテナであるため、次のコードに示すように実行できるはずです。

var currentLegendItem:LegendItem;

for (var i:int = 0; i < legend.numChildren; i++) {
currentLegendItem = LegendItem(legend.getChildAt(i));
}

于 2011-04-29T12:41:45.877 に答える
1

Double が提案したソリューションを試しましたが、何らかの理由で機能しませんでした (実際には機能するはずでしたが)。後でそれを機能させることについて確認する必要があります。他の誰かが同じ問題を抱えている場合に備えて、この代替ソリューションを投稿すると思いました。

別の解決策を見つけることができました(ただし、OPの状況で役立つかどうかはわかりません)。作成時にlegendItemsに影響を与えるだけでよかったので、凡例のchildAddイベントでアクションを実行し、legendItemに対して必要なことを行いました。

private function legendItemAdded(event:ChildExistenceChangedEvent):void {
   var legendItem:LegendItem = event.relatedObject as LegendItem;

   // do what you want with it
}

.........

<mx:Legend id="myLegend"
dataProvider="{myDP}"
borderStyle="solid"
stroke=""
borderThickness="0"
top="0" bottom="20"
childAdd="legendItemAdded(event)"/>
于 2011-08-19T10:49:38.377 に答える