Что-то я совсем в смятении.
При событии MOUSE_UP координаты иногда не такие, какие при последнем MOUSE_MOVE, но как при предыдущем MOUSE_MOVE. Например:
mouseMove: event fields: 314 265
mouseMove: stage fields: 314 265
mouseMove: event fields: 283 240
mouseMove: stage fields: 283 240
mouseUp: event fields: 314 265
mouseUp: stage fields: 314 265
В обоих плеерах, но в дебаговом как будто чаще. Сперва грешил на capture фазу, но и без неё тоже проскакивает. wtf?

Код AS3:
package
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
/**
* @author Pavel fljot
*/
public class MouseEventsTest extends Sprite
{
private var s:Sprite;
private var textField:TextField;
public function MouseEventsTest()
{
super();
s = new Sprite();
s.addEventListener(MouseEvent.MOUSE_DOWN, s_mouseDownHandler);
addChild(s);
textField = new TextField();
textField.width = 500;
textField.height = 200;
textField.multiline = true;
textField.mouseEnabled = false;
addChild(textField);
stage.addEventListener(Event.RESIZE, stage_resizeHandler);
stage_resizeHandler();
}
private function log(...args):void
{
var str:String = args.join(" ");
trace(str);
textField.appendText("\n" + str);
textField.scrollV = textField.numLines;
}
private function s_mouseDownHandler(event:MouseEvent):void
{
log("mouseDown");
stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler, true);
stage.addEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler, true);
}
private function stage_mouseMoveHandler(event:MouseEvent):void
{
log("mouseMove: event fields:", event.stageX, event.stageY);
log("mouseMove: stage fields:", stage.mouseX, stage.mouseY);
}
private function stage_mouseUpHandler(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler, true);
stage.removeEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler, true);
log("mouseUp: event fields:", event.stageX, event.stageY);
log("mouseUp: stage fields:", stage.mouseX, stage.mouseY);
}
private function stage_resizeHandler(event:Event = null):void
{
var g:Graphics = s.graphics;
g.clear();
g.beginFill(0x000000, 0.1);
g.drawRect(x, y, stage.stageWidth, stage.stageHeight);
g.endFill();
}
}
}
upd: Да, OS X, FP 10.2.152.33 standalone. В релизном плагине в хроме 10.2.154.13 такого вроде не получается.