[FLASH MX] suivre la souris

Résolu
toutouffe Messages postés 43 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 juillet 2005 - 14 févr. 2005 à 13:29
toutouffe Messages postés 43 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 juillet 2005 - 15 févr. 2005 à 23:07
Bonjour,



J'aimerais bien qu'un de mes movie clip suive la souris mais a
retardement. J'ai vu un post qui en parlait (http://www.flashkod.com/forum.v2.aspx?ID=202576) mais il n'y avait pas eu
de reponse donc je relance la question.



Pour l'instant j'ai attache ce code a mon clip (qui est une vaisseau)
mais ca merde dès que le curseur passe a droite par rapport au vaisseau
(une boucle infinie). Je pense que c'est parceque il rentre dans la
boucle while et en meme temps le MouseMove se remet en route (puisque
la souris continue a bouger)



/////CODE/////



onClipEvent (mouseMove) {

//Si la fleche est a droite par rapport au vaisseau

if ((_root._xmouse - this._x) > 0)

{

while ((this._x != _root._xmouse))

{

this._x += _root.vitesse;

getProperty(this,_x);

}

}

}



Merci en tout cas de votre aide, je cherche encore de mon cote, si je
trouve la reponse je la posterais ici et dans le sujet ID=202576.

Toutouffe

4 réponses

MrdJack Messages postés 146 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 8 mars 2008 2
14 févr. 2005 à 16:54
je pense avoir la solution a ton probleme, un petit bout de code que j'avais réalisé ya longtemps :



en fait il vaut mieux éviter le onMouseMove car si ta souris ne bouge pas, le vaisseau n'avancera pas non plus...



voici mon code, il en tiens qu'à toi de l'adapter bien sur ...



vaisseau.onEnterFrame = function() {

if (vaisseau._x<=_xmouse) {

vaisseau._x = vaisseau._x+(_xmouse-vaisseau._x+1)/25;

} else {

vaisseau._x = vaisseau._x-(vaisseau._x-_xmouse+1)/25;

}

if (vaisseau._y<=_ymouse) {

vaisseau._y = vaisseau._y+(_ymouse-vaisseau._y+1)/25;

} else {

vaisseau._y = vaisseau._y-(vaisseau._y-_ymouse+1)/25;

}

};



le chiffre 25 est en fait le coeficient de "lenteur" ou de retard si tu préfere...



j'espere que ton prob sera résolu grace à mon aide.



@++
Mrdjack
3
toutouffe Messages postés 43 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 juillet 2005
14 févr. 2005 à 13:41
Bon en fait j'ai reussis a resoudre le probleme de ce code en mettant



while ((this._x < _root._xmouse))



au lieu de




while ((this._x != _root._xmouse))



Parceque en effet, ils peuvent pas etre evaux vu la vitesse que j'avais declare...

Mais je me retrouve avec le meme probleme, il n'y a pas de decalage entre la souris et le clip...



Toutouffe
0
toutouffe Messages postés 43 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 juillet 2005
15 févr. 2005 à 21:34
Super, c'est exactement ce qui me fallait...

Merci beaucoup

Toutouffe
0
toutouffe Messages postés 43 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 juillet 2005
15 févr. 2005 à 23:07
Un dernier petit truc si possible, je veux donc dupliquer mon
movieClip(pour faire un effet de vitesse), et ca ca marche niquel, mais
mes clips dupliques se mettent au dessus de mon clip de base... Comment
je remet mon clip de base par dessus apres ? Mon code c'est :



vaisseau0.onEnterFrame = function() {



// Deplacement a droite

if (vaisseau0._x<_xmouse) {

// Déplacement du vaisseau

vaisseau0._x = vaisseau0._x+(_xmouse-vaisseau0._x+1)/8;

// Création des suiveurs

for(i=0;i<=8;i++)

{

eval("vaisseau"+i).duplicateMovieClip("vaisseau"+i+1,-(i+1));


eval("vaisseau"+i+1)._x =
eval("vaisseau"+i)._x+(_xmouse-eval("vaisseau"+i)._x+1)/(2*8);

eval("vaisseau"+i+1)._alpha -= 20;

}

}

// Deplacement a gauche

else if (vaisseau0._x>_xmouse) {

// Deplacement du vaisseau

vaisseau0._x = vaisseau0._x-(vaisseau0._x-_xmouse+1)/8;

// Construction des suiveurs

for(i=0;i<=8;i++)

{

eval("vaisseau"+i).duplicateMovieClip("vaisseau"+i+1,-(i+1));


eval("vaisseau"+i+1)._x =
eval("vaisseau"+i)._x-(eval("vaisseau"+i)._x-_xmouse+1)/(8+5);

eval("vaisseau"+i+1)._alpha -= 20;

}

}

};


MERCI


Toutouffe
0
Rejoignez-nous