La communauté ALL HTML c'est 58032 membres à ce jour dont 2 inscrits aujourd'hui et 31 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « Flash - LiveMotion »

Retrouvez les publications relatives à ces discussions dans notre rubrique web design et flash.

Texte XML dans boucle FOR...

liste des forums liste des discussions Participer à la discussion

Photo de dubs_one 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 ?
Photo de dubs_one 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...

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions

agenda