Boucle et fonctions

Résolu
PhoenixFnX Messages postés 37 Date d'inscription lundi 4 juillet 2005 Statut Membre Dernière intervention 13 mars 2011 - 9 sept. 2005 à 23:48
slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011 - 11 sept. 2005 à 15:38
<hr size= "2" width="100%">
for (i=1; i<13; i++) {



this["btn"+i].onRollOver = function() {



this.anim.gotoAndStop(2);
loadMovie(i+".jpg", this._parent.clipPhotos);



};




}


<hr size="2" width="100%">

g compri ke ce KoD ne marchai pa a cause du i ki se retrouve a 13 lors de lappel de la
fonction mais j'en ai besoin pour definircette fonction, j'aimerai kil soi a
1 pour btn1
2 pour btn2
etc...
Donc comment faire pour kil prenne la valeur dans la variable i
LORS du parcours de cette boucle
et non
lors de l'appel de la fonction kan on va roll over :/


<hr size ="2" width="100%">

2 réponses

SuperDevy Messages postés 842 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 2 juillet 2007
10 sept. 2005 à 00:03
C'est un problème assez récurrent que tu as, le problème est que c'est
la même variable que tu utilises dans plusieurs fonctions, donc il n'y
a qy'une valeur.



Deux solutions :

1.
Passer par une fonction-outil
prenant l'identifiant (i) comme paramètre : le paramètre est une
nouvelle variable dont la valeur ne vas pas changer.


function initBTN (i) {
this["btn"+i].onRollOver = function() {
this.anim.gotoAndStop(2);
loadMovie(i+".jpg", this._parent.clipPhotos);
};
}
for (i=1; i<13; i++) {
initBTN (i);
};


2.
Enregistrer la valeur de i dans chaque objet :




for (i =1; i<13; i++) {
this["btn"+i].i = i;
this["btn"+i].onRollOver = function() {
this.anim.gotoAndStop(2);
loadMovie(this.i+".jpg", this._parent.clipPhotos);
};
}





SuperDevy, c la !
3
slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011
11 sept. 2005 à 15:38
Ou tout simplement déclaré une nouvelle variable i en local :


for (var i=1; i<13; i++)
3
Rejoignez-nous