Bonjour, je débute à peine dans l'actionscript, donc ma question va surement vous paraitre assez simple, mais comme je n'ai pas réussi à trouver la réponse dans l'aide de macromedia, je vais quand même me riquer à la poser ici
Alors je souhaite simplement effectuer une barre de menu avec des effets dynamique. Pour ceci j'ai crée 2 Clips correspondant à mon bouton en mode normal et en mode appuyé. les deux MC sont composés de deux calques, le fond et le texte dynamique par dessus.
Le fonctionnement est le suivant:
1. je crée autant de boutons que je le souhaite dans ma barre de menu avec attachMovie("MovieClp1_name","bouton1"+i,profondeur).
2. je place ces boutons sur ma scène
3. si la souris passe sur l'un de ces boutons, alors j'efface "bouton1"+i et j'affiche alors au même endroit le clp2 avec la methode attachMovie.
4. onRollOut je reviens à l'affichage initial.
Les changements fonctionnent correctement, mais je constate un "bug" au niveau de ma souris lorsque l'application est lancée. En effet comme mon texte dynamique est situé au dessus du fond de mon bouton, la fonction onRollOver ne marche pas quand ma souris se place sur le texte dynamique (à l'affichage la souris passe du dessin de la main, vers un dessin I de type texte, et la fonction onRollOver n'est plus détéctée et le bouton reviens à son etat initial). Du coup quand je passe la souris sur mes boutons ceux-ci changent de couleur pour revenir presque immdiatement à son affichage initial du à la présence du texte dynamique.
Je ne sais pas si j'ai été assez clair vu que ce bug est assez peu intuitif à expliquer.....
voici mon code
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 var largeur:Number=Stage.width; var hauteur:Number=Stage.height; var marge_droite:Number=20; var marge_gauche:Number=310; var marge_haute:Number=90; var nbre_item_menu:Number=4; var cebouton, pressbouton, pressbouton2:MovieClip; var espacement_bouton:Number=15; for(var i:Number=0;i<nbre_item_menu;i++) { attachMovie("clp_release_menu", "bouton"+i,1000+i); cebouton = _root["bouton"+i]; cebouton._y = marge_haute; cebouton._x = marge_gauche + i*espacement_bouton + i*cebouton._width; cebouton.numItem = i; aff_texte_menu(cebouton); cebouton.onRollOver=function():Void { attachMovie("clp_press_menu", "bouton2"+this.numItem,2000+this.numItem); pressbouton = _root["bouton2"+this.numItem]; pressbouton._y = marge_haute; pressbouton._x = marge_gauche + this.numItem*espacement_bouton + this.numItem*pressbouton._width; pressbouton.numItem = this.numItem; aff_texte_menu(pressbouton); } cebouton.onRollOut=function():Void { _root["bouton2"+this.numItem].removeMovieClip(); } } function aff_texte_menu(cebouton:MovieClip):Void { switch(cebouton.numItem) { case 0: cebouton.labelOut.text = "ACCEUIL"; break; case 1: cebouton.labelOut.text = "CV"; break; case 2: cebouton.labelOut.text = "PHOTOS"; break; case 3: cebouton.labelOut.text = "ARTICLES"; break; } }
voilà voilà![]()
Partager