michel_roger
Messages postés60Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention18 août 2006
-
22 juin 2006 à 00:22
michel_roger
Messages postés60Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention18 août 2006
-
23 juin 2006 à 01:29
Bonsoir,
J'essaye en ce moment de créer une page simple avec une anim flash.
Sur les actions de ma frame principale, je charge un document xml. Je désire créer des points ou des carrés afin de les placer sur une carte. Je récupère les coordonnées x et y dans mon code xml.
Ce qui donne :
// Création de l'objet XML
data=new XML();
data.ignoreWhite = true;
data.onLoad = setPoints;
// Déclaration de l'évènement lors du chargement du fichier xml
function setPoints() {
// J'utilise cette boucle pour parcourir tous les points à afficher
for(i=0;i < data.firstChild.childNodes.length;i++) {
// ici on récupère les coordonnées
curX = data.firstChild.childNodes[i].attributes.x;
curY = data.firstChild.childNodes[i].attributes.y;
// affichage de debug, les coordonnées s'affichent bien dans le champs texte
info.text += curX+" "+curY+"\n";
// J'ai créé au préalable un MovieClip 'point' (juste un cercle)
// C'est lui que je voudrais copier à chaque nouveau point à afficher
var mc = duplicateMovieClip("point", "mc", 1);
// Ici je bloque complet, comment créer et placer un MovieClip dans la carte ?
// Vu qu'ils sont créés dynamiquement, je ne sais pas comment y accéder,
// J'ai l'impression que le même objet est déplacé mais pas dupliqué.
// J'ai au moins un point avec des coordonnées différentes des autres
setProperty("mc", _x, curX);
setProperty("mc", _y, curY);
setProperty("mc", _visible, true);
}
}
Je viens d'essayer avec setProperty("mc"+i, _x, curX); afin de différencier chaque nom de point mais toujours un seul point affiché.
Merci d'avance pour votre aide et bonne nuit
A voir également:
Créer et manipuler des points (boucle) avec Actionscript
kingcobra
Messages postés316Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention19 septembre 2012 22 juin 2006 à 10:33
salut !
C'est normal.
duplicateMovieClip("point", "mc"+i, 1);
Tout est bon sauf le 1 qui désigne la profondeur et un seul objet peut etre assigner a une profondeur donnée.
Donc au lieu de mettre "1" mets plutot "i". ce qui aura pour but d'augmenter aussi cette profondeur.
i peut aussi être remplacé par this.getNextHighestDepth() qui cherche la prochaine profondeur disponible.
Ensuite, au lieu de setProperty("mc"+i, _x, curX); tu as :
this["mc"+i]._x = curX; //attention this est le nom du clip dans lequel se trouve mci, ça peut etre _root ou le nom d'un clip.
qui est largement plus utilisé. (marche aussi avec toutes les autres propriétés : _x _y _alpha _visible _width _height etc...)
michel_roger
Messages postés60Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention18 août 2006 22 juin 2006 à 00:31
Apparemment le même MovieClip (celui que j'ai créé auparavant et que je duplique) est déplacé plusieurs fois et non ses copies. Même si je fais :
// Avec i variable incrémentée par le for()
var mc = duplicateMovieClip("point", "mc"+i, 1); ou duplicateMovieClip("point", "mc"+i, 1);
setProperty("mc"+i, _x, curX);
setProperty("mc"+i, _y, curY);
setProperty("mc"+i, _visible, true);