我通过循环创建一个ArrayCollection,然后想要使用这个ArrayCollection来构建折线图。唯一的问题是我的ArrayCollection中只有值,没有用于构建折线图的关键字。如何在ArrayCollection中添加关键字?或者有没有办法建立没有关键字的折线图?
这是创建arraycollection的代码:
[Bindable] public var Graph_:ArrayCollection;
public function populateArray():void {
var Graph_:ArrayCollection = new ArrayCollection();
for (var i:int=0; i<=500; i++){
var depth_:Number = i*10;
var pressure:Number = 100+i;
Graph_.addItem([depth_,pressure]);
}
// I want to use it further in this way:
<mx:LineChart id="chart"
dataProvider= "{Graph_}"
showDataTips="true">
<mx:horizontalAxis>
<mx:CategoryAxis categoryField="Depth" />
</mx:horizontalAxis>
<mx:series>
<mx:LineSeries yField="Pressure" form="curve" displayName="Pressure"/>
</mx:series>
</mx:LineChart>
答案 0 :(得分:0)
@Brian Bishop建议你这样做:
public function populateArray():void {
Graph_ = new ArrayCollection();
for (var i:int=0; i<=500; i++) {
var depth_:Number = i*10;
var pressure:Number = 100+i;
// add an object who's property names are "depth", "pressure"
// use these names when configuring the axis/line series of the chart
Graph_.addItem({ depth: depth_, pressure: pressure });
}
}
将项目添加到ArrayCollection
时,请将它们添加为包含数据的匿名对象。现在,您可以告诉您的图表使用这些“关键字”(属性名称)。
注意:我也改变了这一行:Graph_ = new ArrayCollection();
您的代码使用的是仅在函数内部存在的本地Graph_
变量,它不是您在类中定义的[Bindable] Graph_
变量。