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 :
2/appel de la fonction "chargerclip" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
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 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()); };
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
Partager