2009-04-25 5 views
0

j'insérer dynamiquement LegendItem dans une légende en utilisant le code suivant:Ajout LegendItem dans des endroits Flex horizontalement pas verticalement (comme il est censé)

signalLegend.removeAllChildren(); 
signalLegend.direction = "vertical"; 
for (var i:int = 0; i < numItems - 1; i++) { 
    signalLegend.addChild(new LegendItem()); 
    legendItem = signalLegend.getChildAt(i) as LegendItem; 
    legendItem.label = "Title here"; 
    legendItem.setStyle("fill", theColour); 
} 

Alors que la direction Légende est défini comme vertical, tous les éléments apparaissent horizontalement.

Très ennuyeux.

Répondre

0

utilisez le label style de placement

0

Cela semble être un bug. Les enfants du contrôle Legend sont mal placés si vous les ajoutez lors de l'exécution. Définissez la direction sur "horizontal" et les éléments apparaîtront verticalement. :-)

0

Ok, j'ai trouvé une solution.

   <mx:Legend id="nhLeg" 
         updateComplete="LegendPosition()" 
         direction="vertical" 
         width="80%"/> 

Et puis dans la fonction LegendPosition():

  private function LegendPosition():void 
     { 

      nhLeg.direction="vertical"; 
     } 
Questions connexes