2009-11-30 7 views
0

Je crée une application pilotée par Xml. Je crée de nouveaux états dans une classe actionScript séparée. Ces états contiennent tous un DataGrid. Je peux changer les états dans le fichier Main.mxml.Modification des enfants des états créés dynamiques

Mais maintenant je voudrais accéder à certains enfants du DataGrid. Dans ce cas, je voudrais basculer la visibilité de GridItems, à partir d'un bouton dans le fichier Main.mxml.

Comment puis-je avoir accès et appliquer cela aux états déjà créés? J'ai essayé de créer RemoveChilds et de le remplacer/le pousser à l'état. Tout ce que j'ai pensé était de supprimer un GridRow entier au tout dernier état, mais il devrait être juste un GridItem à chaque état.

Merci beaucoup pour votre aide!

+0

Ajoutez-vous le même objet RemoveChild à chaque état? Je n'ai pas essayé ceci mais si RemoveChild est lié par les mêmes règles que d'autres enfants d'IU, l'ajouter à un second état le supprimera du précédent. – susichan

Répondre

0

Inversez votre problème. N'essayez pas de pousser l'information dans les états, demandez aux états d'aller chercher l'information en cas de besoin.

Ajoutez une liaison dans chaque état pour vérifier l'état du bouton et exécuter la logique removeChild elle-même.

0

Ok, je dois définitivement essayer vos suggestions. Je l'ai élaboré sur mon chemin, mais plutôt compliqué je devine: Je pousse chaque GridItem dans un tableau quand les états sont créés et crée un getFunction qui retourne le tableau et ainsi le Main.mxml peut y accéder. Le basculeur-fonction dans le Main.mxml ressemble à ceci:

_gridItemArray = theStateClass.getGridItemArray(); 

if(_buttonToggler == false) 
{ 
     for each(_gridItemArray.child in _gridItemArray) 
    { 
    _gridItemArray.child.visible = false; 
    } 
_buttonToggler = true; 
} 

else 
{ 
    for each(_gridItemArray.child in _gridItemArray) 
    { 
     _gridItemArray.child.visible = true; 
    } 
     _buttonToggler = false; 
    } 
Questions connexes