Я не уверен, хотите ли вы узнать абсолютную разницу в положении при перетаскивании мышью или записать расстояние, пройденное мышью.
Сначала нужно отреагировать на нажатие мышисобытие компонента, которое запускает требуемое поведение (ваш значок) и добавляет слушателей на сцену, чтобы получать уведомления о движениях мыши и отпускании мыши.При отпускании мыши удалите слушателей.
Простой пример (flex 3)
<mx:Script>
<![CDATA[
private var originalX:int;
private var originalY:int;
private var diffX:int;
private var diffY:int;
private function onBoxClicked(e:MouseEvent):void
{
originalX = e.stageX;
originalY = e.stageY;
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoved);
stage.addEventListener(MouseEvent.MOUSE_UP, onDragComplete);
}
private function onMouseMoved(e:MouseEvent):void
{
diffX = e.stageX > originalX ? e.stageX - originalX
: originalX - e.stageX;
diffY = e.stageY > originalY ? e.stageY - originalY
: originalY - e.stageY;
trace('Mouse moved, cursor has travelled (x:' + diffX + ', y:' + diffY + ')');
}
private function onDragComplete(e:MouseEvent):void
{
trace('Mouse released, cursor has travelled (x:' + diffX + ', y:' + diffY + ')');
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoved);
stage.removeEventListener(MouseEvent.MOUSE_UP, onDragComplete);
}
]]>
</mx:Script>
Одна из проблем в этом решении -что ему все равно, в каком направлении движется мышь, что может вызвать у вас некоторые проблемы, но вы сами это поймете.