Bonjour à tous,

Étant débutant en AS3, j'ai un peu de mal avec le concept d'objet et le gestionnaire d'évènements!

Mon problème actuel:
Je créé une classe chargeant un XML
Suite au chargement, j'ai besoin de différentes méthodes utilisant le contenu de ce XML

Le problème est que lors de l'instanciation de ma classe, le chargement du XML se fait automatiquement dans le constructeur, seulement, l'appel de mes méthodes (utilisant le contenu du XML) semble se faire avant le chargement de mon XML... D'où le problème!

Petit exemple rapide:

Main.as
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
// Instanciation de ma classe
var produit:ChargeProduit = new ChargeProduit('imgProduit');
// Appel de ma méthode
trace(produit.getNombreProduit());
ChargeProduit.as
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
public class ChargeProduit extends Main {
 
		// Objet de chargement du XML
		public var chargementXMLProduit:URLLoader = new URLLoader();
 
		// Variables pour la gestion produit
		public var infosProduit = new XMLDocument();
		public var nombreDeProduit:int;
 
		// Clip dans lequel on affiche le produit
		public var clipProduit:String = new String;
 
		/**
		 * Constructeur chargeant mon XML
		 */
		public function ChargeProduit(clipProduitTemp:String) 
		{
			clipProduit = clipProduitTemp;
 
			// Traitement XML Produit
			var fichierXMLProduit:URLRequest = new URLRequest("monFichier.xml");// url du fichier chargé
			chargementXMLProduit.addEventListener( Event.COMPLETE, chargeXMLProduit); 
			chargementXMLProduit.load(fichierXMLProduit); 
		}
 
 
		/**
		 * Chargement du XML
		 */
		private function chargeXMLProduit(pEvt:Event):void 
		{
			var produitXML = new XML(pEvt.target.data);
		    infosProduit = produitXML[0]["produits"];
		}
 
		/**
		 * Fonction sortant le nombre de produits dispos dans le XML
		 */
		public function getNombreProduit()
		{
	   	   	nombreDeProduit = infosProduit.elements("*").length();
			return nombreDeProduit;
		}
Je pense ne pas avoir tout bien assimilé, donc je fais appel à vous pour m'orienter dans la bonne voie!

Merci d'avance!