2010-09-16 54 views
0

我正在尋找訪問actionscript中的個別圖例項目(圖例項目是標識圖表系列的標籤和彩色塊)。有沒有人知道Legend或Chart的屬性可以訪問Legend中當前顯示的所有LegendItem?Flex Chart Legend - 如何獲得細粒度的程序控制?

我知道這可以通過使用LegendMouseEvents,因爲事件可以訪問已被點擊/滾動ect的LegendItem。但是,在這種情況下,我不能依賴一個事件。

我最後的手段是破解一個自定義的傳說,但這需要時間(我並不特別),所以我只是想我會首先吸引到SO社區!

謝謝你們

回答

1

一個傳說是一個容器,所以你應該能夠做到如下圖所示的代碼:

VAR currentLegendItem:化LegendItem;

爲(VAR我:= 0;我< legend.numChildren;我++){
currentLegendItem =化LegendItem(legend.getChildAt(I));
}

1

我試圖通過雙擊提出的解決方案,但是,出於某種原因,它不工作(雖然它確實應該有)。我將不得不看到關於試圖讓它在以後工作。以爲我會發布這種替代解決方案,以防其他人遇到同樣的問題。

我設法找到另一個解決方案(雖然我不知道它是否會幫助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)"/>