将关键字添加到ArrayCollection Flex

时间:2013-07-01 09:30:29

标签: flex actionscript flex4

我通过循环创建一个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>

1 个答案:

答案 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_变量。