salut les gars,


j'essaye de mettre au point un ensemble de classes utilisant des composants AS2 pour creer a la demande des boites de dialogues ayant des champs a remplir, ex : demander a l'utilisateur de rentrer un pseudo + pass et de valider ou demander de selectionner une entrée quelconque dans une liste ... etc

j'ai commencé une batterie de test avec des boites de dialogues statiques (crées manuellement) et je suis tombé sur un probleme .... énervant !

j'utilise un clip placé dans la bibli (mcAuthentification) contenant les composants : 2 label + 2 textInput + 1 bouton -> ce clip represente une boite de dialogue pour se logger.
ce clip est placé dans un composant Window lors de l'appel a createPopUp pour etre affiché -> a ce moment j'utilise l'evenement complete pour verifier que le composant Window a bien été crée afin de commencer mes opérations sur les composant contenu a l'intérieur (insertion de données, definition du style, definition des evenements, ... etc)

le probleme : au moment ou complete est appellé les composants utilisés dans la boite de dialogue n'ont pas eu le temps de s'initialiser ..

voici le code de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
import mx.managers.PopUpManager;
import mx.containers.Window;
 
// création et affichage de la boite de dialogue
var winTest:MovieClip = PopUpManager.createPopUp(this, Window, true, {title:"Authentification", contentPath:"mcAuthentification"});
winTest.setSize(250, 300);
winTest._x = Stage.width / 2 - winTest._width / 2;
winTest._y = Stage.height / 2 - winTest._height / 2;
 
var loadtest = new Object();
loadtest.complete = function(eventObject) {
	// test simple sur la presence d'un composant et une des ces valeurs
	trace(winTest.content.tiPseudo);// un composant TextInput
	trace(winTest.content.tiPseudo.text);
	// -----------------------
	trace(winTest.content.btValider);// un composant Button
	trace(winTest.content.btValider.label);
};
winTest.addEventListener("complete", loadtest);
et voici ce que les traces me renvoient :
_level0.depthChild0.content.tiPseudo
undefined
_level0.depthChild0.content.btValider
undefined


j'ai testé avec un setInterval + tempo de 250ms et tout rentre dans l'ordre donc le probleme vient bien du temps de l'initialisation des composants ..
si je crée la meme boite de dialogue mais sans composants le probleme disparrait aussi.

la question a 100€ : comment connaitre le moment ou tous les composants auront été completement initialisés ?