IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH 8] Garder un bouton cliqué


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 139
    Par défaut [FLASH 8] Garder un bouton cliqué
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    on(press){
    	charge_chemises(tableau_chemises1);}
    bouton 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    on(press){
    	charge_chemises(tableau_chemises2);}
    Voici le script principal :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    var tableau_chemises1:Array = new Array("DOSSIER","chemise1", "chemise2", "chemise3");
    var tableau_chemises2:Array = new Array("DOSSIER","TITI", "TUTU");
     
    initialise_police = function(){
      monFormat = new TextFormat ();
      monFormat.size = 10;
      monFormat.font = "Verdana";
      monFormat.align = "center";
      monFormat.underline = false;
    }
     
    function charge_chemises(chemises){
      btn1._visible = false; 
      btn2._visible = false;	 
      x=100; 
      y=20;
      initialise_police();
      for (i=0; i<chemises.length ; i++){
    	if (i == 0) 
    	  {_root.attachMovie("clip_chemiseOK","monclip"+i,i);} // Le premier onglet est automatiquement activé.
    	else
    	  {_root.attachMovie("clip_chemiseKO","monclip"+i,i);} // on active par défaut la première chemise.
     
        _root["monclip"+i]._x = x; 
        _root["monclip"+i]._y = y;
        x =x + 100 ;
    	_root["monclip"+i].createTextField ("label_chemise",i+10,-50,-10,70,20); // Nom_occurence, Profondeur, y, x, largeur, hauteur
        _root["monclip"+i].label_chemise.tabEnabled = false;
        _root["monclip"+i].label_chemise.selectable = false;
    	_root["monclip"+i].label_chemise.text = chemises[i];
     
    	if (i==0) 
    	 { monFormat.bold = true; 
    //       monFormat.underline = true;
           monFormat.color = "0xCC3300";}
    	else 
    	 { monFormat.bold = false;  
           monFormat.color = "0x000000";}
     
    	_root["monclip"+i].label_chemise.setTextFormat(monFormat);
      }
      _global.nbchemise = chemises.length;
    }
    J'ai donc 2 clips : clip_chemiseOK (pour le bouton enfoncé) et clip_chemiseKO

    Voici le code de mon clip_chemiseKO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    btn_KO.onPress = function() {
       for (i=0; i<_global.nbchemise ; i++){
         monFormat = new TextFormat ();
    	 monFormat.color = "0x000000";
    	 monFormat.bold = false; 
    	 _root["monclip"+i].label_chemise.setTextFormat(monFormat);
    	//removeMovieClip(_root["monclip"+i]);
    	 }
      monFormat.bold = true;
      monFormat.color = "0xCC3300";
      label_chemise.setTextFormat(monFormat);
    }
    (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.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 139
    Par défaut
    mon explication manque de clarté ? lolllll

  3. #3
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    bonjour,
    personnellement, en taille, ton code est déjà trop volumineux pour être examiné facilement, l'idéal serait de cerner l'endroit qui coince en enlevant les "édulcorants" qui servent à rien.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 139
    Par défaut
    Merci dom_dev,

    En fait, le problème est simple :

    Je crée autant de chemises que le tableau de chaine contient de chaines.
    Ces chemises sont crées par une boucle, il s'agit de boutons placés dans un clip clip_chemiseKO.

    Quand je clique sur une des chemises, je souhaiterais savoir quelle est son numéro d'index pour la supprimer et la remplacer par le clip "clip_chemiseOK" qui contient mon bouton-cliqué.

    Le code quand on clique sur le bouton est associé au clip "clip_chemiseKO" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    btn_KO.onPress = function() {
       for (i=0; i<_global.nbchemise ; i++){
         monFormat = new TextFormat ();
    	 monFormat.color = "0x000000";
    	 monFormat.bold = false; 
    	 _root["monclip"+i].label_chemise.setTextFormat(monFormat);
    	//removeMovieClip(_root["monclip"+i]);
    	 }
      monFormat.bold = true;
      monFormat.color = "0xCC3300";
      label_chemise.setTextFormat(monFormat);
    }
    Comment savoir sur quel "i" je viens de cliquer pour remplacer mon clip ?

  5. #5
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    je vois une piste je ne sais pas si ça te servira.
    pour connaitre le i sur lequel tu viens de cliquer il suffit de rajouter une variable "indice" dans ton clip clip_chemiseKO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var indice;
    btn_KO.onPress = function() {
       for (i=0; i<_global.nbchemise ; i++){
         monFormat = new TextFormat ();
    	 monFormat.color = "0x000000";
                  ...
                  ...
      _root.debug.text = indice;
    }
    tu as vu à la fin j'ai rajouté la mise à jour d'un champs texte dynamique nommé "debug" pour voir un peu ce qu'il se passe.
    Ensuite lors de la création des onglets tu mets la variable à jour avec i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        ...
        _root["monclip"+i].label_chemise.tabEnabled = false;
        _root["monclip"+i].label_chemise.selectable = false;
        _root["monclip"+i].label_chemise.text = chemises[i];
        _root["monclip"+i].indice = i; //........debug.........
        ...
    bien sur il reste encore pas mal de chemin à faire...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 139
    Par défaut
    Tout compte fait, je suis parti sur la piste du label.
    Comme je connais le label, je parcours ma liste de chaine et si la valeur est égale à la valeur de mon champs de saisie, je suis sur le bon index.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    btn_KO.onPress = function() {
      for (j=0; j< _global.nom_chemise.length; j++)
      {
    	if (_global.nom_chemise[j] == label_chemise.text)
        {
    	pos_x = 100+ (100*j);
    	trace(pos_x);
    	_root.attachMovie("clip_chemiseOK","monclip"+j,j);
                trace('toto');
    	_root["monclip"+j]._x = pos_x; 
       }
     }
    Donc, quand je clique sur une chemise, elle disparait bien, réapparait bien mais toujours dans l'angle en haut à gauche. Il ne prend pas en compte tout ce qui suit l'attachMovie (il passe pas sur le trace "toto").
    Savez vous pourquoi ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX2004] Creer un bouton radio
    Par 3adlouz dans le forum Flash
    Réponses: 2
    Dernier message: 28/07/2005, 14h14
  2. [FLASH MX] Action des boutons dans un menu déroulant
    Par zab_paris dans le forum Flash
    Réponses: 1
    Dernier message: 05/07/2005, 18h14
  3. changer image lorsque bouton cliqué
    Par mussara dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/11/2004, 12h43
  4. [FLASH MX]Problème de bouton et de _level
    Par Geilgestorm dans le forum Flash
    Réponses: 9
    Dernier message: 01/07/2004, 16h37
  5. [Débutant][FLASH MX 2004]les boutons ?
    Par Battosaiii dans le forum Flash
    Réponses: 3
    Dernier message: 04/05/2004, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo