Vitesse de déplacement de la souris

Résolu
cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 - 4 avril 2007 à 11:51
cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 - 4 avril 2007 à 15:50
Bonjour à tous,
voilà, je fais un drag and drop sur un clip qui une fois relaché se déplace selon la position du clip à droite ou à gauche... jusque là, pas de problème. Par contre, j'aimerais, si cela est possible, que la vitesse de mon déplacement dépende de la vitesse de déplacement dela souris avant le relachement.

J'ai cherché dans l'aide Flash par rapport à gettimer pour essayer de calculer une vitesse en faisant la division des positions d'origine (au moment du drag) et finale (au moment du drop) par le temps écoulé, mais je n'arrive pas à concevoir l'écriture d'un tel calcul.
En fait, je ne sais pas par où commencer.

Si quelqu'un a une idée de piste ce serait génial.
Vous remerciant par avance.
D.

4 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
4 avril 2007 à 14:52
Bonjour

lorsque tu commences ton drag
TimeO= getTimer(); // temps 0
PxO=this._xmouse // position initiale de la souris en x
PyO=this._ymouse // position initiale de la souris en y

lorsque la souris est relachée (stopDrag)
TimeF=getTimer(); // temps fin du drag
PxF=this._xmouse // position final de la souris en x
PyF=this._ymouse // position final de la souris en x

// ensuite un peu de mathématique...
DeltaT=TimeF-TimeO // durée du déplacement en milliseconde
DelatX =PxF-PxO // distance totale en horizontale (x)
DelatY=PyF-PyO // distance totale en verticale (y)
// distance réelle entre les deux points (origine et arrivée)
Distance=Math.sqrt((DelatX*DelatX)+(DelatY*DelatY))

Voila... avec çà tu as déjà une base

@+
3
cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 2
4 avril 2007 à 15:11
Tout vient à qui sait attendre Javascript:Insert_Emoticon('/imgs2/smile.gif');
Mille merci, je n'arrivais pas formuler correctement le truc.
J'étais parti sur :
var vitesse:Number=25;
var position_i:Number=0;
var position_f:Number=0;
var temps:Number=0;
var espace:Number=0;
var diff:Number=0;
function updateTimer():Void {
temps = getTimer();
}

function calculVitesse(){
diff=position_x-position_y;
espace=Math.abs(diff);
vitesse=espace*100/temps;
trace("vitesse = "+vitesse);
}
Mais ma vitesse me renvoyais NaN
J'essais de ce pas.
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
4 avril 2007 à 15:49
Pour info,

dans ton code ci-dessus - vitesse= espace*100/ temps ;

temps est défini sur 0 (var temps:Number =0;), or une division par 0 est impossible, c'est pour ca qu'il te renvoi NAN

@+
0
cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 2
4 avril 2007 à 15:50
Super bien vue, le calcul de la distance par pytagore.
Ensuite je fais un calcul de ma vitesse par :
vitesse=Distance*1000/DeltaT;
Le facteur 1000 étant pour palier au facteur miliseconde.
Very good feeling
Javascript:Insert_Emoticon('/imgs2/smile_big.gif');
0
Rejoignez-nous