Легенда Flex Chart - как получить мелкозернистый программный контроль? - PullRequest
0 голосов
/ 16 сентября 2010

Я хочу получить доступ к отдельным элементам легенды в ActionScript (элемент Legend - это метка и цветной блок, обозначающий серию диаграмм). Кто-нибудь знает свойство Legend или Chart, которое дает доступ ко всем отображаемым в данный момент LegendItems в Legend?

Я знаю, что это возможно с помощью LegendMouseEvents, так как события дают доступ к LegendItem, который был нажат / пролонгирован в т. Д. Однако я не могу рассчитывать на событие в этом случае.

Мое последнее средство - взломать пользовательскую легенду, но на это уйдет время (которого у меня нет), поэтому я просто подумал, что сначала обращусь к сообществу SO!

Спасибо, ребята

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Я попробовал решение, предложенное Double, но по какой-то причине оно не сработало (хотя оно действительно должно было). Мне нужно будет попытаться заставить его работать позже. Думаю, я опубликую это альтернативное решение на тот случай, если у кого-то возникнут такие же проблемы.

Мне удалось найти другое решение (хотя я не уверен, поможет ли это ОП в их ситуации). Мне нужно было только повлиять на мои 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)"/>
1 голос
/ 29 апреля 2011

Легенда - это контейнер, поэтому вы должны сделать это, как показано в коде ниже:

var currentLegendItem: LegendItem;

для (var i: int = 0; i

...