我有一个 Starling Sprite
,我想为其获取触摸事件。我正在使用
content.addEventListener(TouchEvent.TOUCH, onTouch);
function onTouch(e:TouchEvent) {
var touch:Touch = e.getTouch(content) as Touch;
if (touch) {
//do something
}
}
但是,这仅在 Sprite 的孩子被触摸时才有效,而不是在它们之间的空间上。我在想,如果我创建一个 alpha'd Image 并粘贴在它下面,那么应该会拾取触摸事件,但是有更好的方法吗?
我也在考虑听舞台上的触摸并做相当于hitTestPoint()
.
我想出了
var hitTest = (touch && content.hitTest(this.globalToLocal(new Point(touch.globalX, touch.globalY))));
但这似乎也不起作用,触摸事件仅在内容 Sprite 的孩子被触摸时才起作用。
解决方案:
最后,我使用了 Cherniv 建议的 alpha'd Quad
bg = new Quad(width, height);
bg.alpha = 0;
addChildAt(bg, 0);