Aller au contenu


Lier un bouton à une animation


4 réponses à ce sujet

#1 rainbowishes

    Ceinture Jaune

  • Members
  • 25 messages
  • Logiciels utilisés:Flash, Photoshop, Illustrator, Indesign, After Effect, Dreamweaver

Posté 07 février 2012 - 03:11

Bonjour à tous,

Je suis nouvelle et débute en AS3; pardonnez-moi si ma question vous semble bête.

Je suis entrain de créer le menu de mon site - il est tout simple, et ne comporte que trois boutons. Je voudrais que ces trois boutons lancent chacun une animation différente au passage de la souris, sans que les autres animations n'interfèrent, et sans forcément les placer d'un bout à l'autre de ma timeline.

En théorie, jusqu'ici, pas de problème : j'ai ajouté des écouteurs à chaque bouton, puis les ai liés à des fonctions avec des gotoAndPlay, comme ceci :


//L'animation précédente s'arrête
stop();
//Quand on clique sur le bouton a, l'animation texte a se lance
bt_ronda.addEventListener(MouseEvent.CLICK, anim_textea);
//On crée l'animation texte a
function anim_textea
{
gotoAndPlay(53);
}
//Quand on clique sur le bouton t, l'animation texte t se lance
bt_rondt.addEventListener(MouseEvent.CLICK, anim_textet);
//On crée l'animation texte a
function anim_textet
{
gotoAndPlay(53);
}
//Quand on clique sur le bouton t, l'animation texte t se lance
bt_rondp.addEventListener(MouseEvent.CLICK, anim_textep);
//On crée l'animation texte a
function anim_textep
{
gotoAndPlay(53);
}
 

Mais j'ai beau tout essayer, avec mes capacités actuelles, je n'arrive à rien : dès qu'on clique sur un des trois boutons, les trois animations se lancent toutes en même temps.

Comment faire pour rendre mes animations indépendantes les unes des autres ?

Merci pour toute réponse !
There's something about this code.

#2 Krevare

    Ceinture Noire

  • Members
  • 560 messages

Posté 07 février 2012 - 03:33

Bonjour,

Je ne travaille pas avec la timeline, mais de ce que je vois, ton problème viens du fait que dans tes trois fonctions, tu demande la même chose.
C'est à dire gotoandplay(53), donc forcément, il se passe la même chose a chaque fois.

Je ne suis pas familier de la timeline, mais je pense que tu devrais avoir pour ton premier bouton une anim qui commence, imaginons a l image 53, le bouton 2 a l image 90 et le bouton 3 a l image 140.

C'est juste un exemple, mais je pense que tu comprendras la logique du truc...

Bonne journée,

Fred.

#3 rainbowishes

    Ceinture Jaune

  • Members
  • 25 messages
  • Logiciels utilisés:Flash, Photoshop, Illustrator, Indesign, After Effect, Dreamweaver

Posté 07 février 2012 - 03:47

Oui, j'ai conscience de ce problème-là, mais j'ai déjà essayé ta solution et voici ce qu'il se passe :

- en cliquant sur le bouton 1, l'anim 1 joue à partir de l'image 53,
- dès qu'on atteind l'image 90, l'anim 2 joue
- dès qu'on atteind l'image 140, l'image 3 joue

Or, je voudrais que les anims 2 et 3 ne jouent QUE si on clique sur, respectivement, les boutons 2 et 3.

Merci tout de même de ta réponse !
There's something about this code.

#4 dldler

  • Moderateur
  • 3 089 messages
  • Logiciels utilisés:Creative Suite

Posté 07 février 2012 - 04:28

Difficile de 'voir' ce que tu attends…

…par contre…

…quand on veut 3 animations différentes, le mieux, c'est de le faire dans 3 symboles de bibliothèque différents.
Tu mets sur chacun de ces moviesClips un stop(); pour qu'il ne se jouent pas par défaut.
Tu poses une instance de ces symboles sur ta scène principale.
Tu les nommes (dans le panneau propriété quand ils sont sélectionnés) :
- mc_textea
- mc_textet
- mc_textep
Les nommer te permet ensuite dans le code d'agir sur eux spécifiquement
Et là, tout devient possible…

//Quand on clique sur le bouton a, l'animation texte a se lance
bt_ronda.addEventListener(MouseEvent.CLICK, anim_textea);
//On lance l'animation texte a
function anim_textea
{
mc_textea.gotoAndPlay(2); // seul le clip mc_textea sera joué
}
//Quand on clique sur le bouton t, l'animation texte t se lance
bt_rondt.addEventListener(MouseEvent.CLICK, anim_textet);
//On lance l'animation texte a
function anim_textet
{
mc_textet.gotoAndPlay(2); // seul le clip mc_textet sera joué
}

// etc…


#5 rainbowishes

    Ceinture Jaune

  • Members
  • 25 messages
  • Logiciels utilisés:Flash, Photoshop, Illustrator, Indesign, After Effect, Dreamweaver

Posté 07 février 2012 - 07:15

Merci beaucoup pour ta réponse!
Je vais essayer ça dès demain.
There's something about this code.





1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS - Tel. 0826 466 613 - Fax. 01 72 70 31 38

FFP