2009-11-10 6 views
0

J'ai une application Flex qui fait référence à un fichier MXML distinct en tant que modèle pour un composant personnalisé. Je crée des instances du composant dynamiquement plusieurs fois dans mon programme, mais j'ai besoin d'un handle qui me permettra de modifier cette instance du composant comme souhaité.Traitement des composants Flex générés dynamiquement

Je transmets des informations spécifiques à ce composant lors de l'instanciation à l'aide de variables publiques pouvant être liées dans le fichier MXML du composant. Je l'ajoute à mon programme principal en utilisant addChild().

Je veux mettre à jour la barre de progression du composant si nécessaire et je veux l'enlever de la boîte à laquelle je l'ai ajoutéChild'd.

Quel est le plus facile/meilleure façon d'obtenir une variable qui me donnera un accès prévisible à chaque composant afin que je puisse facilement manipuler les composants nécessaires? Certaines recherches suggèrent creationComplete, mais j'ai décidé qu'il était plus rapide de demander simplement que de passer par beaucoup d'expériences différentes et de venir en blanc.

Merci pour toute l'aide. :)

Répondre

2

Pouvez-vous pas seulement garder une liste de vos composants dans un tableau? Vous avez probablement une référence d'objet lorsque vous les créez et appelez addChild() sur leur parent. Pourquoi ne pas simplement les mettre dans un tableau en même temps?

var list_of_controls:Array = new Array(); 
var new_Object:<yourType>; 

new_Object = new <yourType>(); 
parent.addChild(new_Object); 
list_of_controls.push(new_Object); 

alors vous pouvez les atteindre ...

var my_Object:<yourType>; 
for each (my_Object in list_of_controls) 
{ 
    // do something 
} 

Vous devez vous assurer que vous disposez d'entre eux correctement lorsque vous avez terminé parce que la référence dans votre tableau les garderait en existence jusqu'à ce que effacé.

Si vous décidez que vous voulez utiliser getChildren() au lieu - que vous pouvez - prendre le temps de lire la documentation parce que je pense qu'il retourne un nouveau tableau avec chaque appel.

J'espère que cela aide.

Questions connexes