Problemas na replicação de arrastar e soltar com eventos do mouse
Eu quero replicar os eventos padrão startDrag / stopDrag com minha própria rotina para alterar um pouco as coisas, e me deparo com algum tipo de propagação de evento ou problema de ebulição. Aqui está o meu 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>
O problema com esse código é que, à medida que você arrasta o objeto para a direita, você verá no rastreio que, ocasionalmente, alguns valores de localX aleatórios chegam lá, resultando no movimento do objeto de um lado para o outro.
Eu não entendo como consertar essa parte, eu acho que é o rótulo que borbulha o evento mousemove, mas eu não entendo como impedir isso de fazer isso.
Todas as sugestões são muito apreciadas!