Je développe une application de bureau. J'utilise ActionScript 3 via Adobe Animate CC. J'ai conçu l'application, animé l'interface graphique et commencé à coder. Les fonctions principales ont bien été codées avec succès, mais j'ai ajouté quelques fonctionnalités supplémentaires qui sortent du cadre des objectifs initiaux de l'application. Tout cela juste pour lier l'application à un site Web et d'autres informations, ce qui m'a rendu complètement fou parce que j'ai passé trop de temps avec très simple if
déclaration LOGIC!Multiple AS3 (boutons MovieClip) pour animer un MovieClip
Quoi qu'il en soit, j'ai créé un menu avec trois boutons MovieClip
. Ces clics de bouton de menu affectent un MovieClip
qui a un fond blanc qui se déplace à chaque clic. J'ai besoin d'être un arrière-plan pour montrer le bel effet de easeIn
et easeOut
tweens d'animation en cliquant sur chaque bouton.
Pour le rendre facile à comprendre, je recréé le code avec une balle très simple et 3 boutons. Si vous cliquez sur le premier bouton, la balle se déplace vers la droite au-dessus du 2ème bouton. Ensuite, le premier bouton devrait être décoché, sauf si un autre bouton est cliqué. Si l'on clique sur le deuxième bouton, la balle se déplace vers la droite au-dessus du troisième bouton. Ensuite, le second bouton devrait être non cliquable aussi, sauf si un autre bouton est cliqué. La même chose vaut pour le troisième bouton.
Maintenant, si le premier bouton est cliqué à nouveau, l'animation du fond blanc ne devrait pas commencer à partir de la position par défaut lors du démarrage de l'application! Il est animé de retour de sa position actuelle à la position par défaut ... et ainsi de suite ...
Je remplace le fond blanc avec une balle pour la simplicité
Ceci est très facile, mais je l'ai perdu avec le eventListeners
, eventHandlers
, et if
instructions! :/
J'ai aussi fait ce tableau qui étudie les cas:
Je sais que ma technique de codage est pas assez intelligent, mais c'est parce que je déteste en utilisant des classes, les paquets, les dossiers de projet ... etc ..
Même si le code est trop long & répétitions, ce serait mieux pour moi pour la simplicité, car la programmation n'est pas mon travail de jour!
S'il vous plaît, toute aide et une réponse rapide serait très appréciée!
code:
import flash.ui.Mouse;
import flash.events.MouseEvent;
one.addEventListener(MouseEvent.CLICK, moveToSecondPos);
two.addEventListener(MouseEvent.CLICK, moveToThirdPos);
//three.addEventListener(MouseEvent.CLICK, moveToFirstPos);
var buttonState:Boolean;
one.buttonState = 0;
two.buttonState = 0;
//three.buttonState = 0;
function moveToSecondPos(event:MouseEvent){
if(one.buttonState == 0){
theBall.gotoAndPlay("go1");
one.buttonState = 1;
}
else if(two.buttonState == 1){
theBall.gotoAndPlay("backToOne");
// two.buttonState = 0;
// one.buttonState = 1;
}
else{
//disable About Button
one.removeEventListener(MouseEvent.CLICK, moveToSecondPos);
}
}
function moveToThirdPos(event:MouseEvent){
if((two.buttonState == 0)&&(one.buttonState == 0)){
theBall.gotoAndPlay("goProducts");
two.buttonState = 1;
}
else if(one.buttonState == 1){
theBall.gotoAndPlay("go2");
// two.buttonState = 1;
// one.buttonState = 1;
}
else{
two.removeEventListener(MouseEvent.CLICK, moveToThirdPos);
}
}
//function moveToFirstPos(event:MouseEvent){
// if(three.buttonState == 0){
// theBall.gotoAndPlay("go3");
// three.buttonState = 1;
// }
// else{
// three.removeEventListener(MouseEvent.CLICK, moveToFirstPos);
// }
//}