2011-06-27 3 views
0

私はflexを使ってActionScriptを動的に作成しようとしています。テスト目的のために私は次のようなデータ構造とコードを思い付いた:flex chartのcolumnseriesが表示されない

Bindable] 
     public var columnDat:Array= 
     [{signalID:"SCL", point2:100}, 
     {signalID:"SCL", point2:50}, 
     {signalID:"SCL", point2:30}, 
     {signalID:"SCL", point2:60}, 
     {signalID:"SCL", point2:220}, 
     {signalID:"SCL", point2:140}, 
     {signalID:"SCL", point2:280}]; 

public function makeDummyChart(genericChart:CartesianChart, genericLegend:Legend, chartPanel:ChartPanel):void { 

      var renderers:ArrayCollection = new ArrayCollection(); 
      genericChart = new ColumnChart(); 

      // Define the two axes. 
      var dispAxis:CategoryAxis = new CategoryAxis(); 
      var axr:AxisRenderer = new AxisRenderer();    
      axr.axis = dispAxis; 
      renderers.addItem(axr); 

      var seriesList:ArrayCollection=new ArrayCollection(); 

      // Add the series 
      genericChart.horizontalAxis = dispAxis; 
      var columnSeries:ColumnSeries = new ColumnSeries();  
      BindingUtils.bindProperty(columnSeries, "dataProvider", this, "columnDat"); 

      columnSeries.xField="signalID";; 
      columnSeries.yField="point2"; 
      seriesList.addItem(columnSeries); 

      genericChart.series = seriesList.toArray(); 
      genericLegend.dataProvider = genericChart; 

      genericChart.horizontalAxisRenderers = renderers.toArray(); 

      genericLegend.dataProvider = genericChart; 
      // chart panel is just the panel on the screen where chart is displayed 
      chartPanel.addChild(genericChart); 
       trace (" make dummy chart done"); 

     } 

私はこのコードを実行したとき、私はちょうど空白のチャートを取得します。

答えて

0

は、今ではそれをテストすることはできませんが、あなただけのシリーズにcolumnDat配列を割り当てた場合、それは十分なものでなければならない:

columnSeries.dataProvider = columnDat; 

または列チャートを

genericChart.dataProvider = columnDat; 
+0

Well columnSeries.dataProvider = columnDat;実際には、実際のアプリケーションでこれを1つずつ追加して、genericChartバージョンを試してみませんでした)。 – solerous

0

まず、あなたはおそらくこのようなもののためにMXMLを使うべきです。簡単です。

第2に、私はあなたがこの例を非常に順調に進んだとは思わない。

1)チャートデータプロバイダにデータを追加し、シリーズは、そのデータプロバイダ内でのxとyのフィールドを指定する必要があり:やっチャートの2通りの方法があります。

2)チャートにデータを追加し、単にxとyフィールドを指定せずに一連に直接データを追加しないでください。

今のところ、1と2の両方が混在しているため、データが除外されているため、シリーズにはデータが表示されません。そのため、空白になります。データプロバイダをシリーズに設定しないでください。代わりにチャートに設定してください。それが機能するはずです。さらなる例として、look at the docs

+0

実際、私はmxmlを使用することはできません。これらのチャートはオンザフライでロードされます。実際のデータはデータベースから読み込まれます(私はここで静的配列を使ってテストしています)。ほとんどの場合、複数のシリーズが存在します。ポイント2については、グラフにデータを追加しているところはどこですか? – solerous

+0

もう一度私の答えをお読みください。 –

関連する問題