[flash] Programme menu & boutons

KowA Messages postés 95 Statut Membre -  
KowA Messages postés 95 Statut Membre -
Bonjour à tous,

J'ai (ci-dessous) un code inserré dans le calque action de mon animation. Celui-ci est censé gérer mes movieclips boutons lors du survol/clic/relachement de l'utilisateur (et notamment, lorsqu'on clic sur un bouton, tous les autres remontent). Le problème c'est que ça ne marche pas du tout ! Le curseur n'a pas du tout d'incidence sur mes boutons.

Pourriez-vous me dépanner ?

var nb:Number = 2; //nombre de boutons
for (j=1; j<=nb; j++) {
var btn:MovieClip = this["bouton"+j]; //noms des boutons
btn.id = j; // identifiant pour la suite
btn.step = 1; // 1 = normal, 2 = enfoncé
btn.onRollOver = function() {
this.gotoAndStop(2); //image bouton survolé
};
btn.onRollOut = function() {
if (this.step != 2) { //si le bouton a été cliqué, pas de "rembobinage"
this.gotoAndStop(3); //image bouton se rembobine
}
};
btn.onRelease = function() {
pom(this.id);
};
}

function pom(id) { // fonction qui relève tous les autres boutons
for (k=1; k<=nb; k++) {
var btn:MovieClip = this["monBouton"+k];
var btnCible:MovieClip = this["monBouton"+id];
btn.gotoAndStop(1);
btnCible.gotoAndStop(2);
btnCible.step = 2;
}
}

--

KowA
Configuration: Windows XP
Firefox

2 réponses

  1. Mimiste Messages postés 1159 Statut Membre 206
     
    je veu pas dire de connerie mais la

    for (j=1; j<=nb; j++) {
    var btn:MovieClip = this["bouton"+j]; //noms des boutons

    il me semble que t'ecrase btn à chaque tour de boucle, tu devrai le stocker dans un tableau une fois que tu a declarer tous les événements d'un btn avant de continuer la boucle
    0
    1. KowA Messages postés 95 Statut Membre 6
       
      Oui effectivement, il semblerait que j'écrase tout...

      Par contre je ne sais pas créer un tel tableau, peux-tu m'indiquer la démarche ?

      merci.
      0
      1. Mimiste Messages postés 1159 Statut Membre 206 > KowA Messages postés 95 Statut Membre
         
        tout simplement tu declare le tableau avant la boucle

        var TableauDeBouton:Array = new Array();

        et pendant la boucle tu fais un

        TableauDeBouton.push(btn);
        0
      2. KowA Messages postés 95 Statut Membre 6 > Mimiste Messages postés 1159 Statut Membre
         
        Ok merci bien, j'essaye ce soir ...
        0
    2. KowA Messages postés 95 Statut Membre 6
       
      Mauvaise nouvelle... aucun changement avec la création de ce tableau.

      Ce qui me trouble c'est que les boutons (movieclips) ne sont même pas cliquables... Je dois bien les appeler bouton+1, bouton+2,..., bouton+n ? Et les 3 images n'ont pas besoin de drapeau ?

      J'ai fais une scène test juste avec mon code et deux boutons (avec nb = 2) mais sans succès. J'ai rendu le script plus clair et j'ai corrigé une erreur mais j'ai encore besoin d'aide pour le rendre fonctionnel...


      var nb:Number = 2; //nombre de boutons
      var TableauDeBouton:Array = new Array();
      for (j=1; j<=nb; j++) {
      var btn:MovieClip = this["bouton"+j]; //noms des boutons
      btn.id = j; // identifiant pour la suite
      btn.step = 1; // 2 = enfoncé, 1 = normal
      btn.onRollOver = function() {
      this.gotoAndStop(2); //image 2 du bouton (animation survol)
      };
      btn.onRollOut = function() {
      if (this.step != 2) { //si le bouton a été cliqué, pas de "rembobinage"
      this.gotoAndStop(3); //image 3 du bouton (retour apparence normale)
      }
      };
      btn.onRelease = function() {
      pom(this.id);
      };
      TableauDeBouton.push(btn);
      }

      function pom(id) { // fonction qui relève tous les boutons sauf celui cliqué
      for (k=1; k<=nb; k++) {
      var btn:MovieClip = this["bouton"+k];
      var btnCible:MovieClip = this["bouton"+id];
      btn.gotoAndStop(1); //image 1 du bouton : apparence normale
      btnCible.gotoAndStop(2); //image 4 du bouton : apparence cliqué
      btnCible.step = 2;
      }
      }


      0
  2. KowA Messages postés 95 Statut Membre 6
     
    Help !

    Les suggestions pour tout autre code gérant les boutons d'un menu sont les bienvenues bien sûr... Ou une correction du code précemdemment écrit...

    Merci de votre aide.
    0