[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;
}
}

A voir également:

2 réponses

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
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
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
KowA Messages postés 95 Statut Membre 6 > Mimiste Messages postés 1159 Statut Membre
 
Ok merci bien, j'essaye ce soir ...
0
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
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