我正在编写一个小游戏,我遇到了一些问题:
我有一个精灵,我们称之为gameBoard,它包含一个背景图像和许多其他小精灵。我的问题是当游戏板上放置一个点击监听器时,如果我碰巧点击了游戏板中包含的众多精灵中的一个,那么localX和localY就是小精灵中的一个。
所以,我的问题是:
如何获取点击相对于事件监听器的坐标?
答案 0 :(得分:1)
很确定这就是你所要求的。
Trigger event from child to parent in AS3
这是一个相当常见的问题 - 您可以使用event.currentTarget property而不是event.target来引用你的对象 添加了事件监听器。
仅触发游戏板的鼠标事件:
[gameboard_instance_name].mouseChildren = false;
//[gameboard_instance_name].addEventListener(...);
答案 1 :(得分:0)
所以在某处您附加了点击处理程序:
gameboard.addEventListener( MouseEvent.CLICK, clickHandler );
然后在您的处理程序中,您可以执行以下操作:
function clickHandler( event:MouseEvent ):void
{
// First way use stage point and convert to gameboard
var stagePoint:Point = new Point( event.stageX, event.stageY );
var gameboardPoint:Point = gameboard.globalToLocal( stagePoint );
// Second way, use the mouse position on the gameboard
// making sure that you only use this handler with the above listener
event.currentTarget.mouseX;
event.currentTarget.mouseY;
}