Bonjour,
Je commence un projet flash en AS2 et après seulement quelques lignes, je rencontre déjà un problème. Comme beaucoup de monde, je commence par « faire » une galerie photo avec des images de taille réduite sur la gauche et l'image sélectionnée en grande taille sur la droite, le tout avec un fichier xml.
Voici le XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0" encoding="UTF-8"?> <menu> <item> <thumb>thumbs/banquier.jpg</thumb> <image>images/banquier_440_587.png</image> <texte><![CDATA[photo 1]]></texte> </item> <item> <thumb>thumbs/CHYSALIDE.jpg</thumb> <image>images/CHYSALIDE_440_587.png</image> <texte><![CDATA[photo 1]]></texte> </item> </menu>
Et voici le code du fla :
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 monXml.ignoreWhite = true; //chargement du xml monXml.load('menu.xml'); monXml.onLoad = function():Void { //nb d'image à traiter (nb de balise parent dans le xml) qte = this.childNodes[0].childNodes.length; for (i=0; i<qte; i++) { //duplication du clip "bt" bt.duplicateMovieClip('bt'+i,_root.getNextHighestDepth()); //position _root['bt'+i]._y += i*70; //img prend la 1ère balise enfant de la ligne 1 du xml --> le thumb img = this.childNodes[0].childNodes[i].childNodes[0].firstChild; //je charge dans le clip bt+i, l'image présente dans img loadMovie(img, _root['bt'+i]); _root['bt'+i].onPress = function() { this._x += 100; }; } //supprime le 1er bt bt.unloadMovie(); };
Avant d'expliquer le problème, vous pouvez voir que je fais souvent référence à un clip qui porte le nom de « bt ». Ce clip est un simple carré sur ma scène.
Donc, ce que doit faire mon code :
- charger un fichier xml
- compter le nombre de nœuds parent
- pour chaque nœuds parent, dupliquer le clip « bt », incrémenter son nom, charger une image à partir du xml puis créer un petite fonction pour le déplacer en x si je clic dessus.
Si je supprime la ligne « loadMovie(img, _root['bt'+i]); », mon code fonctionne bien, c.a.d, si je clic sur un des carré créé il se déplace en x. Par contre quand je garde la ligne de code, et bien ma fonction n'existe plus, j'ai même plus la flèche de la souris qui est remplacée par main au survol des clips.
Si vous avez une idée, un conseil, c'est vraiment sympa.
Merci d'avance,
Julien
Partager