2010-06-10 10 views
0

J'essaie de comprendre comment as3 (pas mxml) ajouter des vues à une pile de vue.ajouter par programme des vues à un flex de viewstack

Par exemple, je une composante de vue comme si

package components.screens 
{ 
    import mx.controls.Label; 
    import mx.core.UIComponent; 

    public class HomeScreen extends UIComponent 
    { 
     private var l:Label=new Label() 

     public function HomeScreen() 
     { 
      super(); 

      l.text="home"; 

      addChild(l) 
     } 

    } 
} 

J'ai être essayer de l'ajouter à un ViewStack de la manière suivante

var myStack:ViewStack= new ViewStack(); 

mystack.addChild(homeScreen) 

Cela ne fonctionne pas. Quelle est la bonne façon?

Je suis conscient que je dois attribuer les ID, mais pour l'instant je veux juste la vue là-bas

Répondre

2

Pouvez-vous quantifier "Ne fonctionne pas" Obtenez-vous une erreur de compilation; ou une erreur d'exécution? Ou autre chose? Je suis à peu près sûr que tous les enfants de ViewStack doivent être des conteneurs; Donc, en théorie, votre composant personnalisé devrait être le conteneur d'extension, pas UIComponent.

Pour citer http://livedocs.adobe.com/flex/3/langref/mx/containers/ViewStack.html

Un conteneur de navigateur ViewStack se compose d'une collection de conteneurs enfant

+0

c'était le problème. J'essayais d'ajouter un UIComponent qui n'est pas un conteneur. Merci! – dubbeat

1

Vous devez ajouter le ViewStack créé AS3 à certains parents sur la scène.

var myStack:ViewStack= new ViewStack(); 
mystack.addChild(homeScreen) 
this.addChild(myStack); 
+0

Bon point; celui que j'ai attrapé dans ma propre réponse. – JeffryHouser

Questions connexes