keyser94
Messages postés8Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention 6 novembre 2008
-
3 oct. 2008 à 22:24
keyser94
Messages postés8Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention 6 novembre 2008
-
6 oct. 2008 à 11:59
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
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 3 oct. 2008 à 23:12
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);
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 4 oct. 2008 à 18:57
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
keyser94
Messages postés8Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention 6 novembre 2008 4 oct. 2008 à 12:21
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);
}
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 ?