AS3:获取clicked / tapped精灵的event.localY

时间:2013-07-18 16:00:19

标签: actionscript-3 events touch local point

我有一个精灵(让我们称之为CONTAINER),其中包含几个按钮(交互式精灵)。我想检索localY以了解触摸/点击CONTAINER的位置。如果CONTAINER具有mouseChildren = false;这不是问题。但只要其中的按钮处于活动状态,event.localY就会返回相对于触摸按钮的值。

_imageContainer.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);

private function onTouchBegin(e:TouchEvent):void {
    _imageContainer.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
    trace("Touch point.y: "+e.localY);
}

有没有办法在不设置mouseChildren = false或计算它的情况下检索localY的值? (=获得孩子的位置并添加值)谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用.localY

将全局鼠标坐标转换为本地坐标,而不是使用globalToLocal
private function onTouchBegin(e:TouchEvent):void {
    _imageContainer.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
    var local:Point = _imageContainer.globalToLocal(new Point(stage.mouseX, stage.mouseY));    
    trace("Touch point.y: "+point.y);
}

答案 1 :(得分:0)

是。你应该使用

localToGlobal();

globalToLocal();

请参阅as3 understanding localToGlobal