AS3:匹配hittest x y与孩子的儿童movieclip协调

时间:2012-10-24 11:42:48

标签: actionscript-3 flash coordinates movieclip hittest

On Root:

我有树夹 我有刀夹

当树剪辑具有分支网格(点)作为其子项

当我点击一次时,我在切割器和每个点(树儿)之间得到了hitTest,但是x,y坐标是非常不同的,例如

如果切刀开启:275,267 然后 它的点击次数:点击次数:-306.8,-118.35

我应该如何使它与匹配唯一的网格匹配。 注意:当hitTest发生时,它会撞击大部分网格,我试图获得位于刀刃下方的点。

我试图减去x,y值以使它们成为一个紧密匹配,但点击不同的点总是在y坐标上有3-5像素或10-15像素的差异

谢谢, Najm。

2 个答案:

答案 0 :(得分:1)

由于dot是另一个影片剪辑的一部分而剪辑不是,你需要变换点的坐标。最简单的方法是使用localToGlobal()或globalToLocal()来转换刀具的cooridinate。有关如何使用theese函数的详细信息,请参阅Adobe文档...

答案 1 :(得分: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));
}