フレックスチャートの凡例 - 細かい粒度のプログラマティックコントロールを取得するにはどうすればよいですか?
-
03-10-2019 - |
質問
ActionScript(チャートシリーズを識別するラベルと色付きブロックの伝説的なアイテム)の個々の凡例アイテムにアクセスしたいと考えています。伝説に現在表示されているすべてのLegendItemsにアクセスできる伝説やチャートのプロパティを知っている人はいますか?
イベントがECTをクリック/ロールされているLegendItemにアクセスできるため、LegendMouseEventsを使用することでこれが可能であることはわかっています。ただし、この場合はイベントに頼ることはできません。
私の最後の手段はカスタムの伝説をハックすることですが、これには時間がかかります(特に持っていません)ので、最初にSOコミュニティにアピールすると思いました!
みんなありがとう
解決
伝説は容器なので、以下のコードに示すように、できるはずです。
var currentlegenditem:legenditem;
for(var i:int = 0; i <legend.numchildren; i ++){
currentlegenditem = legendItem(legend.getChildat(i));
}
他のヒント
私はダブルで提案されたソリューションを試しましたが、何らかの理由で、それは機能しませんでした(本当に持っているはずですが)。後でそれを機能させようとすることについて見なければなりません。他の誰かが同じトラブルを抱えている場合に備えて、この代替ソリューションを投稿すると思いました。
私はなんとか別の解決策を見つけることができました(それが彼らの状況でOPを助けるかどうかはわかりませんが)。私は「legendItems on creation」に影響を与えるだけだったので、伝説のPhidaddイベントでアクションを実行し、その後、私が必要なことを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)"/>