Boutons et variables en as2
Bonjour,
Je suis plus que moyen en as2 et je serai le plus heureux des hommes si l'on m'aidait à y voir clair dans un cas - pour moi - complexe.
Voici la description de mon animation (assez simple dans le principe) :
- la page est divisé en deux par des emptymovieclip qui contiennent des clips chargés par des attachmovie ;
- la partie de gauche est constituée de boutons qui appellent les clips de la partie de droite ;
- le principe est tout à fait fonctionnel (testé sans ce qui pose problème, à savoir. :)
MAIS :
- comme les boutons appellent des clips quasi identiques, je cherche à réaliser une gestion de variable permettant de n'avoir qu'une seule fois la fonction attachmovie, implémentée par les variables. Et là, rien à faire, je n'y parviens pas.
Voici ce que j'ai essayé.
1/création de boutons avec des variables :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| //boutons avec variable
var clip:String
var clipcree:String
clipmenu.barremenu.boutonY.onRelease=function(){
clip = "clip_Y";
trace (clip); //COMMENTAIRE : ici les trace fonctionnent bien
clipcree = "Y";
trace (clipcree);
chargerclip;
}
clipmenu.barremenu.boutonX.onRelease=function(){
clip = "clip_X";
clipcree = "X";
chargerclip;
} |
2/appel de la fonction "chargerclip" :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
//fonction appelée par les boutons
function chargerclip () {
trace (clip); //COMMENTAIRE : ici les trace ne fonctionnent pas, la fonction non plus
trace (clipcree);
trace ("bon");
contener.attachMovie("clip","clipcree",contener.getNextHighestDepth());
var tween_handler:Tween = new Tween(contener.clipcree, "_alpha", Strong.easeIn, 0, 100, 20, false);
tween_handler.onMotionFinished = function() {
var avantderniereprof:Number = contener.getNextHighestDepth() - 2;
var avantdernierclip:MovieClip = contener.getInstanceAtDepth(avantderniereprof);
trace (avantdernierclip);
trace (avantderniereprof);
(avantdernierclip).removeMovieClip();
contener.clipcree.swapDepths(0)
trace (contener.clipcree.getDepth());
}; |
NB : elle n'est pas entière ici car il y a un bouton dans chaque clip appelé - j'ai préféré faire un envoi light pour ne pas rendre fou le visiteur !
Je ne sais pas si ma logique est bonne, mais j'avais tenter des if ; if else... qui ne donnaient rien non plus...
Quelqu'une ou quelqu'un a-t-il Ze solution au problème ?
Merci beaucoup,
Cyril
Y'a encore queque chose qui cloche là d'dans
Me revoilà.
Je suis encore coincé.
Il y a un truc qui ne veut pas se résoudre.
Jusqu'à la ligne :
Code:
contener.attachMovie("clip","clipcree",contener.getNextHighestDepth());
ça marche sans problème : le clip se charge.
Par contre après, il y a un os : le tween ne fonctionne pas (pas de fondu enchaîné). Et
Code:
contener.clipcree.swapDepths(0)
ne renvoie rien ! C'est bizarre.
J'ai essayé de décrire les variables en tant que MovieClip au lieu de String, c'est encore pire : le clip ne se charge pas !
De même, la description du bouton "zoneclic" qui se trouve dans contener.clipcree ne fonctionne pas.
Mon code :
Code:
1 2 3 4
| contener.clipcree.zoneclic.onRollOver=function(){
trace("test1");
contener.Y.gotoAndPlay("roll");
} |
renvoie : undefined
Comme si contener.clipcree n'existait pas !
Encore une fois, je suis coincé. Il doit y avoir une astuce, mais je tourne autour sans y parvenir !
Si vous avez une idée, je suis preneur !
Merci beaucoup !
Cyril
Ca marche, ça marche, ça marche !
Ou plutôt : ça fonctionne !
Merci beaucoup !
Cyril