Problemas al replicar arrastrar y soltar con eventos del mouse
Quiero replicar los eventos estándar startDrag / stopDrag con mi propia rutina para alterar un poco las cosas, y me encuentro con algún tipo de problema de propagación o propagación de eventos. Aquí está mi código:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
mouseDown="mouseDown = true" mouseUp="mouseDown = false"
mouseMove="mouseMove(event)">
<mx:Script>
<![CDATA[
private var mouseDown:Boolean = false;
private var oldMouseX:int = 0, oldMouseY:int = 0;
private function mouseMove(e:MouseEvent):void {
if (mouseDown) {
object.x += (e.localX - oldMouseX);
object.y += (e.localY - oldMouseY);
}
oldMouseX = e.localX;
oldMouseY = e.localY;
trace(e.localX);
}
]]>
</mx:Script>
<mx:Label id="object" text="Drag me" />
</mx:Application>
El problema con este código es que a medida que arrastra el objeto a la derecha, verá en la traza que ocasionalmente llegan algunos valores aleatorios de localX, lo que hace que el objeto se salte de lado a lado.
No entiendo cómo arreglar esa parte, sí creo que es la etiqueta la que produce el evento mousemove, pero no entiendo cómo evitar que eso suceda.
¡Cualquier sugerencia es bienvenida!