Fonction

Résolu
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009 - 13 juin 2007 à 21:32
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009 - 13 juin 2007 à 22:20
Salut :)
Je fait passer à flash pa la page plusieurs variables
nombre -> le nb d'inscrit sur mon site
nom -> un array avec tt les nom des inscrits
coordx ->array des coordonée x sur la carte des inscripts
coordy ->array des coordonées y sur la carte des inscrits

j'ai un clip nomé rond, qui est un pti rond
je voudrais que sur la carte il y est un point pour chaque inscrit, et que lors dans clique sur un point sa me donne le numero de l'inscrit.

donc je fait :
 
for(i=1;i<=nombre;i++) {
nom="rond"+i;
duplicateMovieClip(_root.rond,nom,_root.getNextHighDepth());
_root[nom].onPress=function() {
trace("je suis l'inscrit numero i");
}
}

Le probleme, c'est que je ne sais pas comment récuperer le i dans la fonction, vu qu'il change plus tard.
En fait, il me faudrais un truc du genre le preprocesseur en C avec DEFINE.

comme sa je pourrais faire :

for(i=1;i<=nombre;i++) {
nom="rond"+i;
duplicateMovieClip(_root.rond,nom,_root.getNextHightDepth());
_root[nom].onPress=function() {
DEFINE nombre=i;
trace("je suis l'inscrit "+nombre);
}
}

->le define se changerais a la compilation en nombre=valeur_de_i

voila, si vous savez comment faire saz, ou si vous trouvez une autre solution, je suis prenneur,
merci !

@+

2 réponses

stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
13 juin 2007 à 22:20
OUPSS !!! j'avais oublié le this
je ne savais pas que dans une fonction, declaré dans la flame du level0, que le this pointait vers l'object de la fonction et non la ou il a été declaré, donc voici mon code,n avec _root.pointeur un tetx dynamique :

nombre=4;
coordx=new Array(60,250,120,440);
coordy=new Array(225,200,350,260);
joueur=new Array("stefbuet","mouic","nico","un chinois");
xp=new Array("4520","2500","0","80000000");


for(i=1;i<=nombre;i++) {
nom="rond"+i;
duplicateMovieClip(_root.rond,nom,_root.getNextHighestDepth());
_root[nom].informations=new Object();
_root[nom].informations.joueur=joueur[i-1];
_root[nom].informations.xp=xp[i-1];
_root[nom]._x=coordx[i-1];
_root[nom]._y=coordy[i-1];


_root[nom].onRollOver=function() {
_root.curseur.text="joueur : "+this.informations.joueur+"\nXP : "+this.informations.xp;
}
_root[nom].onRollOut=function() {
_root.curseur.text="";
}


}
onEnterFrame=function() {
 _root.curseur._x=_xmouse+15;
 _root.curseur._y=_ymouse-10;
}

salut a tous :)

@+
3
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
13 juin 2007 à 21:34
a et aussi j'ai oublié, dans le for ya :
_root[nom]._x=coordx[i];
_root[nom]._y=coordy[i];

@+
0
Rejoignez-nous