我希望访问 actionscript 中的各个图例项(图例项是标识图表系列的标签和彩色块)。有谁知道 Legend 或 Chart 的属性,它可以访问 Legend 中所有当前显示的 LegendItems?
我知道这可以通过使用 LegendMouseEvents 来实现,因为这些事件可以访问已单击/滚动的 LegendItem 等。但是,在这种情况下,我不能依赖事件。
我最后的手段是破解一个自定义图例,但这需要时间(我没有特别的时间)所以我只是想我会首先吸引 SO 社区!
多谢你们
我希望访问 actionscript 中的各个图例项(图例项是标识图表系列的标签和彩色块)。有谁知道 Legend 或 Chart 的属性,它可以访问 Legend 中所有当前显示的 LegendItems?
我知道这可以通过使用 LegendMouseEvents 来实现,因为这些事件可以访问已单击/滚动的 LegendItem 等。但是,在这种情况下,我不能依赖事件。
我最后的手段是破解一个自定义图例,但这需要时间(我没有特别的时间)所以我只是想我会首先吸引 SO 社区!
多谢你们
图例是一个容器,因此您应该可以按照以下代码所示进行操作:
var currentLegendItem:LegendItem;
for (var i:int = 0; i < legend.numChildren; i++) {
currentLegendItem = LegendItem(legend.getChildAt(i));
}
我尝试了 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)"/>