2012-10-24 4 views
0

을 영화 클립을 아이의 아이 그러나 hitTest XY 좌표를 일치 :AS3 : 루트에

나는 커터 클립이 나무 클립 이

나무 클립은 자식 같은 지점 그리드 (점)을 가지고있는 동안

, 267 다음 의 GETT 275 :

은 내가 한 번 클릭 할 때 커터 각 점 (트리 아이) 사이 그러나 hitTest을 받고 있지만,이 X하고, 좌표 Y는

커터에있는 경우 예를 들어

매우 다르다 ing 히트의 도트 : 히트 : -306.8, -118.35

그리드를 타격하는 것과 똑같이 만드는 방법은 무엇입니까? 참고 : hitTest가 대부분의 그리드에 도달하면 커터 가장자리 바로 아래에있는 점을 얻으려고합니다.

나는 X를 빼기 위해 노력했다

는, y 값은 그들에게 가까이 일치합니다하지만 서로 다른 점을 클릭하면 항상 Y-, 중간막

덕분에 3-5 픽셀 또는 10 ~ 15 개 픽셀의 차이가하는, Najm .

+0

당신이 문제를 보여주는 몇 가지 코드를 게시하시기 바랍니다 수 ... 방법 theese 기능을 사용하는 추가 정보를 원하시면 어도비 문서를보십시오? 'hitTest' 란 무엇입니까? –

답변

1

도트는 다른 무비 클립의 일부이기 때문에 커터는 그렇지 않으므로 도트의 좌표를 변환해야합니다. 가장 쉬운 방법은 localToGlobal() 또는 globalToLocal()을 사용하여 커터의 cooridinate를 변환하는 것입니다.

0

감사 @Rizzla,

import flash.display.Sprite; 
import flash.events.MouseEvent; 
import flash.geom.Point; 

var square:Sprite = new Sprite(); 
square.graphics.beginFill(0xFFCC00); 
square.graphics.drawRect(0, 0, 100, 100); 
square.x = 100; 
square.y = 200; 

addChild(square); 

square.addEventListener(MouseEvent.CLICK, traceCoordinates) 

function traceCoordinates(event:MouseEvent):void { 
    var clickPoint:Point = new Point(square.mouseX, square.mouseY); 
    trace("display object coordinates:", clickPoint); 
    trace("stage coordinates:", square.localToGlobal(clickPoint)); 
}