Vitesse de déplacement de la souris

Résolu
Signaler
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
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

Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
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

@+
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
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.
Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
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

@+
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
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');