Мне кажется, проблема в том, что данные передаются ТОЛЬКО при вызове функции. Проще говоря, информация, которую вы хотите проверить, не обновляется. Поэтому вы можете попробовать следующее:
circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
private function mouseDown(event:MouseEvent):void {
addEventListener(Event.ENTER_FRAME, dragMe);
}
function dragMe (e:Event) {
circle.startDrag(false, new Rectangle(0,0 , 400, 400));
trace("starting drag X: " + circle.x + ", Y: " + circle.y);
}
private function mouseReleased(event:MouseEvent):void {
circle.stopDrag();
trace("ended drag X: " + circle.x + ", Y: " + circle.y);
}
Как то так. Использование события ENTER_FRAME позволяет Flash обновлять и передавать данные каждый кадр. Таким образом, по умолчанию это будет 24 раза в секунду. (Это будет означать, однако, что Flash отслеживает также 24 раза в секунду). Я думаю, что это не будет необходимо делать для функции mouseReleased, потому что эту позицию нужно проверять только один раз.