jalka70
Messages postés9Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention31 mai 2011
-
16 avril 2007 à 22:13
jalka70
Messages postés9Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention31 mai 2011
-
17 avril 2007 à 14:03
Bonsoir à tous,
Je soumets le problème suivant à votre sagacité :
Je dispose, sur une scène, d'une dizaine de boutons. Chaque bouton est sensé appeller dans ma scène un movie clip différent.
Comment faire pour qu'un bouton, une fois qu'il a été cliqué, reste en état abaissé, puis, une fois qu'un autre bouton est cliqué, que le précédent reprenne son état d'origine (c.à.d. qu'il soit à nouveau cliquable).
Pour info, j'ai créé mes boutons de cette façon :
chaque bouton est un movie clip, avec 3 états différents (donc 3 images clé, correspondants aux différents états - mes actions sont bien entendu placées sur un calque au dessus des images clés).
État 3 : bouton abaissé (et qui le reste), souris sortie (rollout)
CODE :
stop();
enabled = false;
_parent.mn2.enabled = true;
_parent.mn2.gotoAndStop(1);
Voilà. Si le rollover se fait bien, en revanche, impossible de faire revenir le bouton à son état original. Quelqu'un aurait-il la solution (compréhensible par un newbie, étant donné que je ne me suis plongé dans flash qu'avant-hier) ? Par avance merci de vos lumières…
cs_embalmer
Messages postés120Date d'inscriptionmercredi 14 décembre 2005StatutMembreDernière intervention10 décembre 2007 17 avril 2007 à 13:17
Hello,
Voilà comment je procèderais (je ne suis pas partis de ton code étant donné qu'il est difficile de s'y retrouver sans le fla), si j'ai bien compris tu veux faire des radio boutons personnalisés :
chaque bouton est une occurence d'un même clip bouton contenant 3 images clés (avec un stop(); à chaque image bien sûr)
La 1ère image correspond au bouton normal
La 2ème : au bouton survolé.
La 3ème : au bouton pressé.
tu donne à chaque bouton les noms d'occurences : bouton1, bouton2, bouton3...
A l'image 1 de la racine de ton anim tu place :
var oldPushedBtn:Number = 0;;
function pressBtn(numBtn:Number){
if(_level0.oldPushedBtn != 0) {
_level0["bouton"+oldPushedBtn].gotoAndStop(1);
}
_level0["bouton"+numBtn].gotoAndStop(3);
_level0.oldPushedBtn = numBtn;
}
ensuite pour chaque bouton tu leur met le code suivant :
on (rollOver) {
if (this._currentframe != 3) {
this.gotoAndStop(2);
}
}
on (rollOut) {
if (this._currentframe != 3) {
this.gotoAndStop(1);
}
}
on (press) {
_level0.pressBtn(1);
}
Voilà par contre tu change la valeur envoyée à la fonction pressBtn pour chaque bouton, comme ceci : exemple : _level0.pressBtn(10) pour le bouton 10 .
PS : un ptit conseil au passage pour bien débuter en actionScript (ou tous autres langages) apprend à bien utiliser ton débogeur (CTRL+SHIFT+ENTREE).
jalka70
Messages postés9Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention31 mai 2011 17 avril 2007 à 13:49
Bonjour embalmer et merci beaucoup pour ton aide.
Je te prie d'accepter mes excuses pour ne pas avoir mis le .fla à dispo. Je ne sais pas si ce code et cette façon de faire peuvent vraiment m'aider, mais je vais tenter le coup. Je te joins le .fla afin que tout le monde puisse voir de quoi je parle. En fait, le but final est le suivant : chaque bouton, placé sur ma scène, doit déclencher une animation différente (je pense créer un movie clip par bouton et associer un loadmovie à chaque bouton).
Dans la scène principale, le clic sur un bouton devrait donc en principe déclencher le chargement d'une animation. Chaque animation doit pouvoir être contrôlée (vitesse de défilement, flèches de navigation avant-arrière, son) à partir de la scène principale. Je me demande si je m'y suis pris de la bonne façon...
jalka70
Messages postés9Date d'inscriptionjeudi 22 mars 2007StatutMembreDernière intervention31 mai 2011 17 avril 2007 à 14:01
Eh ben en fait non. Raaaa... Peut-être le fait que j'utilise firefox sous mac osx ? Je ne vois aucun des fichiers uploadés, alors que je l'ai bel et bien fait , puisque je n'ai plus d'espace dispo. C'est énervaaaaant...
Bon tant pis. Merci encore embalmer.
Vous n’avez pas trouvé la réponse que vous recherchez ?