当跟踪显示对象的
例如,我在舞台上绘制了一个简单的400 x 400像素精灵,并使用
左上角的第一个像素返回
mouseX / mouseY
或localX / localY
坐标时,为什么x
从1开始而y
从0开始?例如,我在舞台上绘制了一个简单的400 x 400像素精灵,并使用
MouseEvent.MOUSE_MOVE
事件侦听器调用处理程序函数来跟踪鼠标的本地坐标。左上角的第一个像素返回
{x:1, y:0}
,右下角的最后一个像素返回{x:400, y:399}
。 x
和y
不应该以相同的值开始和结束吗? 我不确定哪个对于第一个鼠标坐标更有意义(是0还是1),但它们肯定不应该不同吧?[SWF(width = "1000", height = "600", backgroundColor = "0xCCCCCC")]
import flash.display.Sprite;
import flash.events.MouseEvent;
var darkBlueRect:Sprite = createSprite();
darkBlueRect.x = 23;
darkBlueRect.y = 42;
addChild(darkBlueRect);
darkBlueRect.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveEventHandler);
function mouseMoveEventHandler(evt:MouseEvent):void
{
trace(darkBlueRect.mouseX, evt.localX, darkBlueRect.mouseY, evt.localY);
}
function createSprite():Sprite
{
var result:Sprite = new Sprite();
result.graphics.beginFill(0x0000FF, 0.5);
result.graphics.drawRect(0, 0, 400, 400);
result.graphics.endFill();
return result;
}
trace(darkBlueRect.localToGlobal(new Point(evt.localX,evt.localY)));
将会给出(x=24, y=42)
。 - shanethehat