我有一個需要一些自定義標籤的酒吧堆積條形圖。每個酒吧都需要顯示標籤前面的酒吧值。爲了支持這一點,我爲BarChart中的各種BarSeries創建了一個自定義labelFunction(見下文)。Flex BarChart Stacked BarSeries labelFunction - Bar Count vs. Stacked Sum
該函數成功呈現標籤,但在堆疊條的情況下,標籤值不顯示我想要的內容。它不顯示欄的值,而是顯示棧中的欄的總和。例如,如果BarSet包含三個值爲3,4和5的小節,則標籤不會顯示爲「3」,「4」和「5」,而會顯示爲「3」,「7」和「12」 」。
從this example看起來我可以通過爲每個BarSeries創建一個單獨的labelFunction並訪問特定屬性(例如data.item。@ fooCount)來實現我想要的結果。不過,如果可能的話,我寧願只有一個通用函數。是否有另一個屬性可以取代xNumber,使我獲得酒吧的特定價值而不是總和?
請注意,默認的標籤行爲(即不設置labelFunction)會顯示單個值,而不是總和......所以我假設這是可能的,希望沒有很多額外的箍環可以跳過。 :)
我自定義的labelFunction:
private function setCustomLabel(item:ChartItem, series:Series):String
{
var data:BarSeriesItem = BarSeriesItem(item);
var currentSeries:BarSeries = BarSeries(series);
return currentSeries.displayName + ": " + data.xNumber;
}
一些BARCHART代碼片段:
<mx:BarChart id="myChart" showDataTips="true"
height="180" width="100%">
...
<mx:BarSet type="stacked">
<mx:BarSeries displayName="Foo Count" xField="fooCount"
labelFunction="setCustomLabel" />
<mx:BarSeries displayName="Bar Count" xField="barCount"
labelFunction="setCustomLabel" />
</mx:BarSet>
</mx:series>
</mx:BarChart>
謝謝!
截至目前,這_has_已經過測試,它的工作原理。正是我需要的。謝謝! – GoldDragonTSU 2011-05-11 15:38:49
@J_A_X我真的很高興看到你的解決方案:)但我嘗試了同樣的事情,但它只是忽略了labelFunction並顯示了正常的工具提示。是否還有其他步驟(我已經創建了labelFunction並在每個BarSeries中設置了labelFunction屬性)? – Zesty 2012-02-05 12:39:35
@J_A_X我也試着返回「測試」,並且被忽略 - 它仍然顯示BarChar的標準工具提示。 – Zesty 2012-02-05 12:42:00