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
ChargeProduit.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());
Je pense ne pas avoir tout bien assimilé, donc je fais appel à vous pour m'orienter dans la bonne voie!
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; }
Merci d'avance!
Partager