Sens animation en fonction sens souris au survol

Résolu
Signaler
Messages postés
8
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
6 novembre 2008
-
Messages postés
8
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
6 novembre 2008
-
Bonsoir,

Je me décide à poser ma question après plusieurs recherches sur le net et sur le site sans succès.
Je suis débutant en flash et surtout en action script.
Je suis sur CS3 en action script v2

Mon problème est le suivant
J'ai un clip contenant un objet qui bascule (comme si il était accoché par en haut) au survol de la souris
Et je souhaiterais qu'en fonction du sens de la souris au moment du survol du clip
Le clip bascule dans le meme sens (par exple vers la gauche) pour qu'ensuite il se remette en position.
Ce clip sera ensuite répété plusieurs fois pour créer un menu.

Je sais comment basculé le clip d'un coté ou d'un autre.
Mais je pense qu'il me manque un bout de code qui serait du style
on(mouseover){
   if (sens=gauche) gotoAndPlay(1); //animatin vers la gauche
   if (sens=droit) gotoAndPlay(10); //animation vers la droite
}

Voilà, J'espère avoir été clair.
Merci pour votre aide ou toutes infos qui pourra m'aider
car pour l'instant mon anim va toujours dans le meme sens et c'est pas très joli

Keyser

5 réponses

Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010

Salut,
Il faut utiliser un objet écouteur.
Pour t'expliquer le principe (après tu adaptes selon tes besoins):
Admettons que tu as un clip au milieu de la scène nommé: clip
La scène dans cet exemple fait 500px de largeur.

var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
   if (_xmouse<250) {
       clip._x++;
   }
   else {
       clip._x--;
   }
};
Mouse.addListener(mouseListener);

@+.
telov.ch
Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010

clip._x++;
// Signifie simplement que je donne l'instruction au clip de bouger sur x (->) à chaque fois que l'écouteur de la fonction onMouseMove est activé
clip._x--;
// C'est l'inverse (<-)

Mais toi tu n'en as pas besoin vu que ton instruction à toi c'est de dire au clip gotoAndPlay(2).
C'était juste pour l'exemple ;)
D'ailleurs vu que ton interpolation ne sert qu'à une rotation du clip, à la place moi je ferais
clip._rotation += 10; // Par exemple...

Et pour continuer mon exemple en rapport avec ta question n°2, si tu lui mets une instruction sur le rollOver, il faut également lui dire ce qu'il doit faire sur le rollOut !! Logique.

Je précise que dans mon exemple les objets sont dirigés depuis la scène principale et non dans le clip, il faut donc mettre ton code dans Action-Image et non Action-Clip.

Pour continuer mon exemple en rapprt avec ce que tu veux faire, on imagine toujours qu'on a un clip sur la scène que l'on nomme : clip (Fenêtre->Propriétés_>Occurrence de:) :

var pos = clip._width/2;
// On donne une variable position qui est égale au clip divisé par 2

var mouseListener:Object = new Object();
// On crée un objet écouteur qui écoutera les évènements de la souris

mouseListener.onMouseMove = function() {
// On donne une fonction que l'on activera lors d'un évènement de la souris

    clip.onRollOver = function () {
// Lors d'un évènement de la souris on donne une fonction à activé lorsqu'on pointe sur le clip
       
   if (clip._xmouse@+.
telov.ch
Messages postés
8
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
6 novembre 2008

Merci beaucoup
tu m'a mis qur la voie
Voilà ce que j'ai fait :
on(rollOver){
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
   if (_xmouse>90 && _xmouse<137) {
       clip._x++;
    gotoAndPlay(2);
   }
   else if (_xmouse>137 && _xmouse<185) {
       clip._x--;
    gotoAndPlay(22);
   }
};
Mouse.addListener(mouseListener);
}

J'ai uploader mon fichier pour mieux comprendre
http://www.mediafire.com/?sharekey=53c6efcf60d3d5b1ac21b5e1a073f2a3


1ère question :
à quoi sert clip._x--; & clip._x++; ?

2eme question :
Cela semble plus ou moins fonctionner mais le plus génant est que ça fonctionne meme quand la souris est en dehors du clip
Il faut certainement que je fix y ?

Merci en tout cas pour ton code
Messages postés
1236
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
6 octobre 2010

Edit:

var pos = clip._width/2;
// On donne une variable position qui est égale à la largeur clip divisé par 2

@+.
telov.ch
Messages postés
8
Date d'inscription
vendredi 20 mai 2005
Statut
Membre
Dernière intervention
6 novembre 2008

Merci beaucoup pour ton aide et tes conseils
Cela semble bien fonctionné