查询组件是否位于X,Y位置

时间:2012-12-29 16:38:57

标签: actionscript-3 flex flex4.5 flexbuilder

我在15x15的电路板上有一组盒子。

我只有一个事件监视器可以捕获触摸事件,一旦用户点击屏幕,我需要知道哪个框最接近事件给出的坐标(x,y)。

获得它的更好方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

简单地区分x&位置和他们正方形。取最低 d

dx = x1 - x2;
dy = y1 - y2;
d = dx^2 + dy^2;

两个x& y将是盒子&当前触摸点(使用.localX& .localY属性)。

以下是一个示例代码,可能只需要您提供的所有代码:

board.addEventListener(TouchEvent.TOUCH_TAP,function(e) {

    var minVal:int = int.MAX_VALUE;     
    var minBox:Sprite = null;

    for(var i=0; i<board.numChildren; i++) {
        var box:Sprite = board.getChildAt(i);
        var d:int = Math.pow(box.x-e.localX ,2) + Math.pow(box.y-e.localY,2);  
        if(minVal > d) {minVal = d; minBox = box; }
    }

    // You have the minimum value & closest box reference here

});