Duplicate movie avec envois d'information dans les MC créés

Résolu
mab_corp Messages postés 5 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 7 septembre 2005 - 7 sept. 2005 à 00:27
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 - 7 sept. 2005 à 19:24
Bonjour... Ca doit être mon premier message sur le forum, et je remercie déjà ceux qui me répondront...



Voilà, j'ai un petit probleme de duplicateMovie.



Ce code provient d'un code existant (et que j'ai trouvé sur flashkod)
qui avait pour but de charger une playlist d'mp3s en xml, la parser, et
jouer les morceaux. Le principe de mon "mod" est de fait la même
chose, mais avec la liste des artistes de ma soirée. Dupliquer
ensuite un MC de base (qui contient des champs textes et un autre MC
vide)



En parsant les éléments xml, le code "jette" les textes etc dans les
duplications, et charge la photo dans le MC du MC dupliqué (j'espere
que tout le monde me suit)



Le probleme, c'est que les éléments xml ne sont pas affichés, sauf le
dernier de la liste... la boucle qui parcours le xml tourne bien
(vu qu'elle déplace le dernier MC en fonction du nombre de tours)



Si quelqu'un trouve l'erreur... Il serait génial de m'expliquer



Ce que ça donne, c'est ça: http://hebforum.free.fr/burning/main.html page artists



Le code:



//(je vous passe la partie nettoyage du xml)

// parse les éléments du XML et affiche les données dans les movieClips

function parseMenu () {

cleanNode(buildArtistsXML);

menu = buildArtistsXML.firstChild;

menuItems = menu.childNodes;

xDeBase = 0; // absice de base

yDeBase = 35; // ordonnée de base (du premier MC)

for (i=0; i<menuItems.length; i++) {



// parse

temp = menuItems[i];

temp.nomArtist = temp.attributes.nomArtist;

temp.statusArist = temp.attributes.statusArist;

temp.description = temp.attributes.description;

temp.img_url = temp.attributes.img_url;



// affichage des données dans le MC

duplicateMovieClip("_parent.animChargee.itemTemp", "item"+i, 0);

_parent.animChargee["item"+i].nom.text = temp.nomArtist;

_parent.animChargee["item"+i].description.text = temp.description;

_parent.animChargee["item"+i].statusArist.text = temp.statusArist;

loadMovie(temp.img_url, _parent.animChargee["item"+i].photo);



// placement du MC

_parent.animChargee["item"+i]._x = xDeBase;

_parent.animChargee["item"+i]._y = yDeBase;

yDeBase += 15; // y du prochain MC



_global.nb = menuItems.length;

}

}



// chargement du XML

artistsXML = new XML();

artistsXML.load("artists.xml");

buildArtistsXML = artistsXML;

artistsXML.onLoad = parseMenu;





d'avance merci



Mab.

3 réponses

cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
7 sept. 2005 à 10:19
Pour ce type de problème, la première chose à vérifier, c'est la
profondeur à laquelle tu dupliques tes MC. (vu que seul le dernier est
affiché...il a sans doute remplacé celui d'avant qui lui-même...etc...).



Bref, tu dupliques tout à la profondeur 0. Donc remplaces "0" par "100+i" par exemple.



J'pense que ça devrait résoudre ton problème
3
mab_corp Messages postés 5 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 7 septembre 2005
7 sept. 2005 à 19:12
Merci Goldenboy68!!! Le problème est résolu...



Mais je comprends pas trop le principe des couches... Ce sont les
niveaux? Comme une série de transparents empilés les uns sur les
autres et qui auraient un numéro allant du plus proche ( <0 par
exemple) au plus éloigné? ( >=0 par exemple) C'est ça?
Mais l'intéret, il est où la dedans??



Encore merci Goldenboy, ça me permet d'avancer...



Mab.
0
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
7 sept. 2005 à 19:24
En général tu donnes un numéro supérieur à zéro.



Ca sert à superposer des objets (comme pour un dessin animé tu
superposes des calques et tu peux réutiliser un des calques sur
plusieurs images en en changeant un autre).



Ensuite t'as une fonction assez sympa "swapDepths" qui te permet
d'intervertir la profondeur d'un clip (pour par exemple le mettre
temporairement ou définitivement au premier plan).



Sinon pour la gestion des profondeurs, y'a aussi getNextHighestDepth()
qui permet de récupérer la prochaine profondeur libre sur un clip (pour
éviter d'écraser un objet sur une profondeur déjà utilisée par exemple!)



Voilà voilà!



@+! Samy
0
Rejoignez-nous