tu as rien compris à ce que j'ai expliqué avant alors
Bon je t'ai expliqué que tu peux créer une variable ou plusieurs, dynamiquement sur tes objets (c'est la force de l'actionscript)
Quand ta boucle s'incrémente.. i est une variable temporaire qui change dans le temps..... donc forcément le bt il va pas se rappeler que i vallait 1 mais il va chercher la valeur de i.. une fois que la boucle est finie elle vaut 5 ! (condition de fin de la boucle)
Pour éviter ce genre de problème il suffit de stocker en mémoire pour chaque bouton dans une propriété dynamique la valeur courante de i quand on créer ou qu'on utilise le bouton dans la boucle....
faut pas oublier que quand tu appuis sur le bouton... les instructions dans la boucle for.. cela fait un bon moment qu'elles ont étaient exécutées....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 var action = function (id:Number) { trace ("link + " : + id) ; } var nBts:Number = 5; // nombres de boutons for (var i = 1; i<nBts; i++) { var bt:MovieClip = this["bt"+i]; bt.index = i ; // index c'est le nom que je donne à ma propriété dynamique.. je mets le nom que je veux bt.onRollOver = fadeOut; bt.onRollOut = fadeIn; bt.onPress = function () { action ( this.index) ; // là je retrouve en mémoire ma propriété index... } }
EKA+
Partager