2011-08-06 3 views
0

Je crée dynamiquement des panneaux en fonction des informations que je reçois d'un fichier XML, mais je rencontre un problème avec l'ajout de boutons à ces panneaux. Ces buttoms sont également créés en fonction des informations extraites du fichier XML. Le problème semble être dans la façon dont je donne un nom d'identification aux panneaux. Toute aide que vous pouvez donner serait géniale.Ajout de boutons à un panneau créé dynamiquement

private function sidebar():void{ 
      for each (value in [email protected]) 
      { 
       var myInstance4:spark.components.Panel = new spark.components.Panel(); 
       myInstance4.title = value; 
       myInstance4.id = value; 
       sidebarbox.addChild(myInstance4); 
       Alert.show(myInstance4.id) 
       for each (value2 in [email protected]) 
       { 
        var myInstance3:spark.components.Button = new spark.components.Button(); 
        myInstance3.label = value2; 
        myInstance3.addEventListener("click",changeIt); 
        myInstance3.id=value2;  
      //  value.addChild(myInstance3); 
       // value.addElement(myInstance3); 
       } 

      } 
     } 

Répondre

0

Utilisez myInstance4.addElement pour ajouter les enfants.

Vous créez déjà une instance en appelant

var myInstance4:spark.components.Panel = new spark.components.Panel(); 

Si vous avez créé ces éléments dans MXML, oui, vous seriez en utilisant la propriété id pour identifier chaque objet lorsque vous utilisez dans ActionScript. Par exemple

<s:Button id="myButton" label="My Button" /> 

protected function creationCompleteEvent(event:FlexEvent):void 
{ 
    myButton.doSomething(); 
} 

MAIS,

si vous avez créé à l'aide d'ActionScript, vous n'avez pas besoin de définir la propriété id pour y accéder aussi longtemps que vous avez une référence à cet objet.

protected function creationCompleteEvent(event:FlexEvent):void 
{ 
    var myNewButton:Button = new Button(); 
    //You do not need to set the id here 
    myNewButton.doWhatEver(); 
} 
Questions connexes