我是新來的Flex。我一直在線圖中繪製多個系列,其中所有這些系列的長度都相同。現在我需要繪製新的數據,每個系列的長度都不相同。問題是如何修改下面的代碼來做到這一點。Flex:如何在LineChart中輸入多個不同數組長度的序列?
initApp()函數在程序開始時調用,它調用函數genData()來生成用於在LineChart中繪圖的數據集。
public function initApp():void {
// Initialize data provider array.
dataSet = new ArrayCollection(genData());
}
public function genData():Array {
var result:Array = [];
include "Data_File.as"; // load myarray<1|2|3|4> example data
for (var ii:int = 0; ii < myarray1.length; ii++) {
var localVals:Object = {
x1:myarray1[ii],
y1:myarray2[ii],
x2:myarray3[ii],
y2:myarray4[ii]
};
result.push(localVals); // Push new object onto the data array.
}
return result;
}
變量「dataSet」用於繪製多個系列。
<mx:LineChart id="myChart" dataProvider="{dataSet}">
<mx:series>
<mx:LineSeries id="series1" xField="x1" yField="y2"/>
<mx:LineSeries id="series2" xField="x2" yField="y2"/>
</mx:series>
</mx:LineChart>
有人可以推薦如何放置數組1,數組2,ARRAY3和array4到X1,Y1,X2,Y2(分別)當陣列1的長度和數組2不等於說ARRAY3和array4?或者,等同的結果。我假設一切都通過數據集進入,但我不知道是否有可能以某種方式直接從<mx:LineChart ...>
或<mx:LineSeries ...>
直接引用array1(等),以避免在不必要的數組(例如dataSet)上浪費存儲空間。
一種解決方案我發現了插入一個'的dataProvider = 「{} dataSet1的」'到'的的代碼'線,然後使用myarray1和myarray2 dataSet1的定義爲在完成genData ()(除了刪除x2和y2代碼行),然後更改initApp()函數以便爲dataSet1調用genData()一次,爲dataSet2調用另一次。 –
ggkmath