-
Message publié le samedi 02 février 2008 à 12 h 19 par dubs_one. Dubs_one
-
Bonjour
Alors quand je code, je suis plutôt du genre à tester 2000 trucs différents avant de trouver la bonne syntaxe, autant dire que je ne maîtrise pas toujours le language que je tape...
Bref, j'ai créer un "clip" qui contient une vignette et du texte, la première chargée dynamiquement depuis un jpg, le second depuis un fichier XML.
Après moulte tentative, j'arrive à ça :
charge = new XML();
charge.load("./index.xml");
charge.ignoreWhite = true;
for (i=1; i<4; i++){
cible = i - 1;
if(i < 10){i = "0"+i;}
clip.duplicateMovieClip("clip"+i, i);
charge.onLoad = function () {
vTitre = charge.childNodes[0].childNodes[cible].childNodes[0].firstChild;
vInfo = charge.childNodes[0].childNodes[cible].childNodes[1].firstChild;
vLien = charge.childNodes[0].childNodes[cible].childNodes[2].firstChild;
vDiffuseur = charge.childNodes[0].childNodes[cible].childNodes[3].firstChild;
vDescription = charge.childNodes[0].childNodes[cible].childNodes[4].firstChild;
vNumero = charge.childNodes[0].childNodes[cible].childNodes[5].firstChild;
}
this["clip"+i].imageVignette.loadMovie("./images/vignette"++".jpg", 0);
}
Le hic, c'est que mes 3 occurences sont bien créées mais il manque le texte. J'ai essayé de mettre le charge.onLoad directement dans le clip à dupliquer mais ça ne marche pas. J'ai testé avec this["clip"+i].vTitre et rien n'apparait... pourtant avec clip01.vTitre ça s'affiche, idem avec les autres occurences.
Du coup ma boucle ne sert à rien si je dois charger les variables de texte en ciblant directement "clip01", "clip02", "clip03" etc.
Help !!!
D'avance merci.
D'ailleurs, j'ai remarqué qu'avec ma syntaxe des URL du JPG et du XML chargés, je suis obligé de mettre "./fichier.jpg" si je veux tester sur le navigateur et "../fichier.jpg" si je veux tester sous Flash... why ?
-
Message publié le jeudi 28 février 2008 à 12 h 22 par dubs_one. Dubs_one
-
Bonjour
Je persiste et je signe...
Après d'autres recherches, j'ai découvert qu'il fallait inclure la boucle "for" dans "charge.onLoad" et non l'inverse. Ensuite, plutôt que de duppliquer un clip de la scène, j'ai utilisé "attachMovie" pour récupérer un clip vierge de ma bibliothèque et de le compléter dynamiquement. ça marche pour les images mais le texte reste "undefinided" ! je ne comprends pas parce que l'exemple qui me sert de base est rédigé pareil...
Où est-ce que je me plante ?
charge.onLoad = function(){
_global.racine = charge.childNodes[0];
_global.nbrProjets = racine.childNodes.length;
for (i=0; i<nbrProjets; i++){
if(i < 10){i = "0"+i;}
_root.attachMovie("clipProjet","clip"+i, i);
_root["clip"+i].sonNumero = i;
_root["clip"+i]._x = 220;
_root["clip"+i]._y = 70 + (i*165);
_root["clip"+i].vInfo = racine.childNodes.childNodes[0].firstChild;
_root["clip"+i].clipVignette.clipImage.loadMovie("../images/vignette"++".jpg", 0);
_root["clip"+i].onPress = function() {
trace(this.sonNumero);
}
}
}
Quand je remplace le lien XML par du texte entre guillemets ça marche et j'ai vérifié le codage de mon XML et il est correctement chargé dans Flash. Le HIC vient de la boucle FOR mais pourquoi ???!
Si quelqu'un peut me sortir de ce marasme... merci...