Définir Code boutons dans une boucle ?

Définir Code boutons dans une boucle ? - Flash/ActionScript - Programmation

Marsh Posté le 30-08-2008 à 12:01:14    

Bonjour,
 
J'aimerais savoir s'il est possible d'attribuer du code à des boutons à l'aide d'une boucle ?  Je crois que j'approche mais ça n'as pas l'air de bien fonctionner...
En nommant mes boutons : bt1, bt2, bt3, bt4 etc... et leur attribuer du code avec une syntaxe du genre :
 

Code :
  1. for(i=0;i<NbWork;i++){
  2.   this["bt"+i].onRelease = function() {
  3.    Indice = i;
  4.    trace(Indice);
  5.    holder.loadMovie(urls[Indice]);
  6.   caption.text = captions[Indice];
  7.   }
  8. }


 
Au préalable, je charge mes travaux (une image + une description) dans des tableaux, et je souhaite afficher l'item correspondant au bouton sur lequel on a cliqué, en utilisant le i comme indicateur. En français : Je clique sur bt1, j'affiche l'item 1 et le texte qui lui correspond (texte1), si je clique sur le bouton 4 (bt4), j'affiche l'Item 4 etc...  
 
Est ce clair ? Est ce que vous pouvez m'aider ?
 
 


Message édité par sarahz le 30-08-2008 à 13:22:29
Reply

Marsh Posté le 30-08-2008 à 12:01:14   

Reply

Marsh Posté le 30-08-2008 à 13:44:50    

Ca, ca ne marche pas, un trace me permet de voir que même lorsque je clique sur le bt1, le i est egal à 3 (fin de ma boucle), alors que j'ai besoin de connaitre le "i" pour charger l'image correspondante...
 
 
[quelques instants plus tard...]
Alors, ayant continué a cherher, j'ai trouvé, c'est parceque la boucle continue de s executer indépendament du onRelease, donc, on a pas le temps d'utiliser le "i" pour faire autre chose. Il faut donc le placer dans une autre variable indice, pour pouvoir sen servir.
 
>>> Va chercher bonheur sur le wiki :::    [url] http://wiki.mediabox.fr/tutoriaux/ [...] et_boutons[/url]
 
Ce qui donne, finalement :
 

Code :
  1. for(i=0;i<3;i++){
  2. this["bt"+i].indice = i;
  3. this["bt"+i].onRelease = function(){
  4.  trace(this.indice);
  5.  this.gotoAndPlay("over" );
  6.  holder.loadMovie(urls[this.indice]);
  7.  caption.desc.text = captions[this.indice];
  8. }
  9. }


 
 
 
 
 
Vous etes trop forts le gens :)


Message édité par sarahz le 30-08-2008 à 14:23:18
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed