2011-07-29 5 views
5

또는 localX/localY 표시 객체의 좌표를 추적 할 때 x은 1에서 시작하고 y은 0에서 시작하는 이유는 무엇입니까?ActionScript - 부정확 한 마우스 좌표?

예를 들어 마우스의 로컬 좌표를 추적하기 위해 핸들러 함수를 호출하는 MouseEvent.MOUSE_MOVE 이벤트 리스너를 사용하여 스테이지에 400x400 픽셀의 간단한 스프라이트를 그렸습니다.

첫 번째 왼쪽 위 픽셀은 {x:1, y:0}을 반환하고 마지막 오른쪽 하단 픽셀은 {x:400, y:399}을 반환합니다. xy이 같은 값으로 시작하고 끝나지 않아야합니까? 첫 번째 마우스 좌표 (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; 
} 
+1

좋은 질문입니다. 또한'trace (darkBlueRect.localToGlobal (new Point (evt.localX, evt.localY)));''(x = 24, y = 42)' – shanethehat

+0

을 얻을 것입니다. 스프라이트의 끝에있는 좌표는 반드시 올라야합니다 (423/442 전역 및 400/400 로컬). 또한 mySprite.localX와 mySprite.mouseX는 같습니다. 어쨌든 제가 발견 한 유일한 오류는 원점입니다. X는 1에서 시작하여 0을 클릭 할 수 없습니다. –

답변

3

신고 버그가 하나 발견했습니다

http://bugs.adobe.com/flashplayer/

나는 그것이 무엇보다도 스프라이트에 적용되는 라인을위한 공간을 만드는 것이었다 아마 생각

하지만 모든 테스트는하지 입증 그럴 수 있습니다. 내 의견으로는 이것은 버그입니다. 그것을 파일하고 나는 그것을 두 번이나, 또는 당신이 귀찮게 할 수 없다면 나는 그것이 수정되어야하므로 파일을 알려주십시오.

업데이트 난 그냥 내가하는 StageScaleMode 다음 개체에 2 ~ 3 회 확대, 확장 가능하도록 설정하고 MOUSE_DOWN에 읽는 0/0를 얻기 위해 노력 다른 테스트를 시도했습니다

. 분명히 할 수 없습니다. 나는 마지막으로 엑스에 0의 독서를 얻었지만, 그 다음에 Y는 나옵니다. 이 문제는 플래시가 X/Y 포인터 위치를 숫자가 아닌 int로 반환한다는 사실에 달려 있다고 생각합니다. 확대 된 경우 포인터 위치에서 십진수 값을 얻을 수 있습니다. 아마 그냥 버그가있는 코드 또는 소수점을 계산하는 방법에 따라 부동 소수점 정밀도 문제가 발생하거나 확대되지 않고 객체의 크기가 조절되지 않으면 플래시가 정수에서 해당 십진수를 반올림하여 설명 할 수 있습니다. 이상한 행동. Dunno가 추측 할 때,이 추가 테스트의 결과를 추가 할 것이라고 생각했습니다.

+0

나는 그것에 대해서도 투표를하고, 확실히 버그처럼 보입니다. – shanethehat

+0

링크를 보내 주셔서 감사합니다. 버그를 신고하고 링크를 보내 드리겠습니다. 젠장, 내가 어제부터 직면 했었던 문제의 근원 인 것 같아서 그것이 정말로 버그가 아니며 내가 잘못하고 있었던 것이기를 바랐다. http://stackoverflow.com/questions/6855190/setting- x 좌표 -from-mouse-location – TheDarkIn1978

+0

여기에 보고서가 있습니다. http://bugs.adobe.com/jira/browse/ASL-230 – TheDarkIn1978

관련 문제