imagina que tenemos un MC y creamos un ENTER_FRAME
Código ActionScript :
var X0:Number=stage.MouseX
var Y0:Number=stage.MouseY
mc.addEventListener(Event.ENTER_FRAME,conocerMovimiento)
function conocerMovimiento(e:Event){
var X1=stage.MouseX;
var Y1=stage.MouseY;
var incremento=(X1-X0)*(X1-X0)+(Y1-Y0)*(Y1-Y0)
trace(incremento)
X0=X1
Y0=Y1
}
Veremos la distancia al cuadrado de lo que se ha movido el ratón cada fps.
Si queremos podemos acumular ese incremento
Código ActionScript :
var X0:Number=stage.MouseX
var Y0:Number=stage.MouseY
var incremento:Number=0;
mc.addEventListener(Event.ENTER_FRAME,conocerMovimiento)
function conocerMovimiento(e:Event){
var X1=stage.MouseX;
var Y1=stage.MouseY;
var distancia=(X1-X0)*(X1-X0)+(Y1-Y0)*(Y1-Y0)
incremento+=distancia
trace(incremento +" :" +distancia)
X0=X1
Y0=Y1
}
Veremos cómo estamos moviendo el Mouse.
Tú sólo quieres que cuente esa distancia si X1 e Y1 está sobre un Objeto dado
Pues ponle un "if"
Código ActionScript :
function conocerMovimiento(e:Event){
if (objeto.hitTest(stage.mouseX,stage.mouseY)){ //<---si está sobre el objeto
......
}
}
Vale, ese es sólo el principio. Vemos el problema con literatura
1.-Cuando empecemos a draguear debemos añadir un listener MouseMove
2.-Cuando dejemos de draguear eliminaremos el listener MouseMove
3.-En El listener MouseMove, cuando haya un hitTest con el Objeto crearemos el listener ENTER_FRAME anterior
Así que deberemos tener 4 listener,
Para Draguear
MOUSE_DOWN //<---empieza a draguear y crea un MOUSE_MOVE
MOUSE_UP //<--elimina los lsitener MOUSE_MOVE y ENTER_FRAME
Para controlar que empiece a contar el incremento
MOUSE_MOVE //<--que controle el movimiento si choca o no
El que controla el incremento
ENTER_FRAME //<---que controle el incremento