2010-05-04 10 views
0

les LineSeries n'est pas ajouté dynamiquement à mon CartesianChart ... Quel est le problème dans ce code:FLEX: comment ajouter dynamiquement LineSeries à CartesianChart

... 

private function chartComplete():void { 

       var ls:LineSeries = new LineSeries();  
       ls.styleName = 'timeline'; 
       ls.dataProvider = "{dataManager.tagViewTimelineModel.tags.getItemAt(0).yearPopularity}"; 
       ls.yField = 'popularity'; 
       //ls.s = "{new Stroke(0xCC33CC, 2)}"; 
       AllChart.series[0] = ls; 
      } 

... 

<mx:CartesianChart id="AllChart" width="100%" height="100" creationComplete="chartComplete();"> 

      <mx:horizontalAxis><mx:CategoryAxis id="horiz1" dataProvider="['1','2','3','4','5','6','7','8','9','10','11','23','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31']"/></mx:horizontalAxis> 
      <mx:horizontalAxisRenderers><mx:AxisRenderer axis="{horiz1}"/></mx:horizontalAxisRenderers> 

      <mx:verticalAxis><mx:LinearAxis id="vert1" /></mx:verticalAxis> 
      <mx:verticalAxisRenderers><mx:AxisRenderer axis="{vert1}"/></mx:verticalAxisRenderers> 

      <mx:series> 
       <mx:AreaSeries id="timeArea" styleName="timeArea" name="A" dataProvider="{dataManager.tagViewTimelineModel.tags.getItemAt(2).yearPopularity}" areaStroke="{new Stroke(0x0033CC, 2)}" areaFill="{new SolidColor(0x0033CC, 0.5)}" /> 


      </mx:series> 

      </mx:CartesianChart> 

Je ne peux voir le TimeLine si je l'ai ajouté avec MXML :

<mx:LineSeries styleName="timeLine" dataProvider="{dataManager.tagViewTimelineModel.tags.getItemAt(0).yearPopularity}" yField="popularity" stroke="{new Stroke(0xCC33CC, 2)}" /> 

Mais je dois mettre à jour la vue, et ajouter des lignes N donc je ne peux pas le faire avec MXML.

merci

+0

@CookieOfFortune: Je ne sais pas si vous avez vu mon dernier commentaire, car Stack Overflow le cache! merci – aneuryzm

Répondre

0

Vous pouvez définir la propriété série pour le graphique. Ajoutez simplement un nouvel objet Series à ce tableau.

+0

voulez-vous dire cela? AllChart.series.push (ls); Ça ne marche pas. – aneuryzm

+0

L'écouteur ne peut être appelé que lorsque vous définissez la propriété. Alors peut-être faire: série: Array = AllChart.series; series.push (ls); AllChart.series = série; – CookieOfFortune

+0

ok, j'ai changé et maintenant j'ai une erreur d'exécution: "ReferenceError: Erreur # 1069: popularité de la propriété introuvable sur la chaîne et il n'y a pas de valeur par défaut.". – aneuryzm

Questions connexes