Click sur des boutons créés dynamiquement

Résolu
cs_ssow
Messages postés
8
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
29 mars 2005
- 23 mars 2005 à 15:18
cs_ssow
Messages postés
8
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
29 mars 2005
- 29 mars 2005 à 09:35
Bonjour, bonjour!!
Un petit probleme de flash: Je voudrais créer une grille de 25*25 cases. Si l'utilisateur clique sur une case, ca affiche le numero de la case sur une autre image:

for (carreau_y=1;carreau_y<=25;carreau_y++){
for(carreau_x=1;carreau_x<=25;carreau_x++){
a++
attachMovie("carreau", "carreau" , a);
carreau._x=(carreau_x*20);
carreau._y=(carreau_y*20);
//c'est la que commence le probleme...
carreau.onRelease=function(){
trans= carreau.getDepth();//la variable trans est affichée dans l'image n°3
gotoAndPlay(3);
}
carreau._name = "carreau"+a;
nom="carreau"+a;

Mais malheuresement, quel que soit la case sur laquelle je clique, il me retourne "undefined"..
A l'aide!!!

8 réponses

pegase31
Messages postés
6138
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
11
23 mars 2005 à 16:09
il est normal, car tu crées 25x25 clips dont le nom est "carreau" !

Tu dois simplement virer tes 2 dernières lignes qui ne servent à rien du tout et remplacer la ligne 4 par :

attachMovie ("carreau", "carreau"+a, a);

Ensuite, tu remplaces tous tes appels de clip "carreau" par :

this["carreau"+a"]

Et le tour est joué !

Peg'

PS: tu aurais regardé ma source tuto sur la création d'un RPG bassé sur un quadrillage, tu aurais vu tout ça !
3
pegase31
Messages postés
6138
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
11
24 mars 2005 à 18:54
si : tu dois transmettre leurs valeurs dans le clip lors de leurs créations. il te restera juste à en ressortir les coordonnées quand tu en as besoin.

Peg'
3
pegase31
Messages postés
6138
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
11
25 mars 2005 à 18:06
ben dans ta boucle, il faut faire un truc du genre :
this["carreau"+a].nomDeVariable = Valeur de la variable;

Tu me suis ?

Peg'

Ps : avant de vouloir faire un RPG en flash (c'est un exemple), n'oublie pas d'apprendre les bases !
3
cs_ssow
Messages postés
8
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
29 mars 2005

24 mars 2005 à 18:51
Merci beaucoup, mon probleme est (en partie )résolu!!
Plus de probleme pour tout ça...
Mais je souhaiterais que lorsque on clique sur une case, ça transmette ses coordonnées x et y à limage d'arrivée:

this["carreau"+a].onRelease=function(){
transy=carreau_y;
transx=carreau_x;
gotoAndPlay(3);
}

Mais évidemment (c'est logique...) transx et transy valent chacun 26... Tu sais pas comment je pourrais faire?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ssow
Messages postés
8
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
29 mars 2005

25 mars 2005 à 16:11
Hello...
tu va me prendre pour un con, mais j'ai beau chercher, je ne trouve pas le moyen de transmettre des variables dans un clip (il me met "undefined"), et je n'arrive pas non plus à les récupérer...
0
cs_ssow
Messages postés
8
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
29 mars 2005

26 mars 2005 à 09:07
Merci beaucoup, je pensais les avoir, les bases, mais je me rend compte que non ...
Bon, devine quoi?? J'ai encore un probleme!!
la ça me depasse...

a=0;
for (carreau_y=1;carreau_y<=25;carreau_y++){
for(carreau_x=1;carreau_x<=25;carreau_x++){
a++
attachMovie ("carreau", "carreau"+a, a);
this["carreau"+a].valeurx=carreau_x;
this["carreau"+a].valeury=carreau_y;
this["carreau"+a].numero=a;
this["carreau"+a]._x=(carreau_x*20);
this["carreau"+a]._y=(carreau_y*20);
interm=this["carreau"+a].trouduc //la je ne sais pas pourquoi, mais si je ne passe pas par cette variable, ca ne marche pas... enfin bon c'est pas grave..
this["carreau"+a].onRelease=function(){
trans=interm;
gotoAndPlay(3);
}
}
}

Et dans l'image trois, je recupere this["carreau"+trans].valeury=carreau_y et this["carreau"+trans].valeury=carreau_y.
Et la, il me sort 25 et 25!!Comme si trans vallait 25²!
Et le pire: Si je remplace this["carreau"+a].numero=a;
par: this["carreau"+a].numero=carreau_x*carreau_y ca me fait la meme chose!
C'est bizarre...
0
cs_ssow
Messages postés
8
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
29 mars 2005

27 mars 2005 à 12:29
Up....
0
cs_ssow
Messages postés
8
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
29 mars 2005

29 mars 2005 à 09:35
Personne pour m'aider??
0