[FLASH 8] Garder un bouton cliqué

Garder un bouton cliqué [FLASH 8] - Flash/ActionScript - Programmation

Marsh Posté le 28-06-2006 à 14:25:19    

Bonjour,
 
Sur un projet, j'ai un bouton qui me permet d'afficher des onglets avec un texte dynamique dessus.
Je souhaiterais quand on clique sur un de ces onglets que celui-ci reste en position cliqué (cf mon code).  
J'ai donc créer 2 clips. Le premier contient mon bouton normal et le second contient mon bouton à l'état enfoncé. (bouton = onglet style excel)
 
Le problème, c'est que ces onglets sont crées dynamiquement (leur nombre et leur libellé (champ texte dynamique) peut varier.
Comment faire pour savoir au moment du clic sur un de ces onglet, quel est le numéro d'index de l'onglet cliqué afin de détruire ce clip et le remplace par un autre (clip bouton cliqué).
 
Je ne sais pas si je suis très clair.
Pour simplifier, voici mon source.
 
********************************
J'ai 2 boutons sur ma page principale (qui appellent chacun des onglets différents) :
 
bouton 1 :

Code :
  1. on(press){
  2. charge_chemises(tableau_chemises1);}


 
bouton 2 :

Code :
  1. on(press){
  2. charge_chemises(tableau_chemises2);}


 
Voici le script principal :
 
 

Code :
  1. var tableau_chemises1:Array = new Array("DOSSIER","chemise1", "chemise2", "chemise3" );
  2. var tableau_chemises2:Array = new Array("DOSSIER","TITI", "TUTU" );
  3. initialise_police = function(){
  4.   monFormat = new TextFormat ();
  5.   monFormat.size = 10;
  6.   monFormat.font = "Verdana";
  7.   monFormat.align = "center";
  8.   monFormat.underline = false;
  9. }
  10. function charge_chemises(chemises){
  11.   btn1._visible = false;
  12.   btn2._visible = false;
  13.   x=100;
  14.   y=20;
  15.   initialise_police();
  16.   for (i=0; i<chemises.length ; i++){
  17. if (i == 0)
  18.   {_root.attachMovie("clip_chemiseOK","monclip"+i,i);} // Le premier onglet est automatiquement activé.
  19. else
  20.   {_root.attachMovie("clip_chemiseKO","monclip"+i,i);} // on active par défaut la première chemise.
  21.  
  22.     _root["monclip"+i]._x = x;
  23.     _root["monclip"+i]._y = y;
  24.     x =x + 100 ;
  25. _root["monclip"+i].createTextField ("label_chemise",i+10,-50,-10,70,20); // Nom_occurence, Profondeur, y, x, largeur, hauteur
  26.     _root["monclip"+i].label_chemise.tabEnabled = false;
  27.     _root["monclip"+i].label_chemise.selectable = false;
  28. _root["monclip"+i].label_chemise.text = chemises[i];
  29. if (i==0)
  30.  { monFormat.bold = true;
  31. //       monFormat.underline = true;
  32.        monFormat.color = "0xCC3300";}
  33. else
  34.  { monFormat.bold = false
  35.        monFormat.color = "0x000000";}
  36. _root["monclip"+i].label_chemise.setTextFormat(monFormat);
  37.   }
  38.   _global.nbchemise = chemises.length;
  39. }


J'ai donc 2 clips : clip_chemiseOK (pour le bouton enfoncé) et clip_chemiseKO
 
Voici le code de mon clip_chemiseKO :
 

Code :
  1. btn_KO.onPress = function() {
  2.    for (i=0; i<_global.nbchemise ; i++){
  3.      monFormat = new TextFormat ();
  4.  monFormat.color = "0x000000";
  5.  monFormat.bold = false;
  6.  _root["monclip"+i].label_chemise.setTextFormat(monFormat);
  7. //removeMovieClip(_root["monclip"+i]);
  8.  }
  9.   monFormat.bold = true;
  10.   monFormat.color = "0xCC3300";
  11.   label_chemise.setTextFormat(monFormat);
  12. }

(dans un premier temps, je modifie juste le libellé mais je souhaite donc changer le bouton).
 
Voilà, pouvez-vous m'aider svp ?
 
Si je n'ai pas été encore assez clair, voici mes sources :
 
http://iceman2001.free.fr/chemises4.fla (flash 8)
 
ou  
 
http://iceman2001.free.fr/chemises4_mx2004.fla (flash MX)
 
Merci d'avance.


Message édité par dick turpin le 28-06-2006 à 14:26:25
Reply

Marsh Posté le 28-06-2006 à 14:25:19   

Reply

Marsh Posté le 28-06-2006 à 16:53:09    

Pourquoi le programme ne passe pas sur mon trace('toto') dans cet evenement ?
 

Code :
  1. this.btn_KO.onPress = function() {
  2. for (j=0; j< _global.nom_chemise.length; j++){
  3.  if (_global.nom_chemise[j] == label_chemise.text){
  4.   posX = (100 * j);
  5.   trace(posX);
  6.   _root.attachMovie("clip_chemiseOK","monclip"+j,j);
  7.   trace('toto');
  8.   _root["monclip"+j]._x = posX;
  9.  }
  10. }
  11. }


 
Merci

Reply

Marsh Posté le 29-06-2006 à 10:18:24    

Problème résolu grace à une personne de développez.com !!
 
J'ai joué sur la proprété _visible de mes clips !!!  :bounce:  :bounce:  :bounce:

Reply

Sujets relatifs:

Leave a Replay

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