또는 localX/localY
표시 객체의 좌표를 추적 할 때 x
은 1에서 시작하고 y
은 0에서 시작하는 이유는 무엇입니까?ActionScript - 부정확 한 마우스 좌표?
예를 들어 마우스의 로컬 좌표를 추적하기 위해 핸들러 함수를 호출하는 MouseEvent.MOUSE_MOVE
이벤트 리스너를 사용하여 스테이지에 400x400 픽셀의 간단한 스프라이트를 그렸습니다.
첫 번째 왼쪽 위 픽셀은 {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
을 얻을 것입니다. 스프라이트의 끝에있는 좌표는 반드시 올라야합니다 (423/442 전역 및 400/400 로컬). 또한 mySprite.localX와 mySprite.mouseX는 같습니다. 어쨌든 제가 발견 한 유일한 오류는 원점입니다. X는 1에서 시작하여 0을 클릭 할 수 없습니다. –