我有一个Starling的Sprite
,想要获取它的触摸事件。我正在使用
content.addEventListener(TouchEvent.TOUCH, onTouch);
function onTouch(e:TouchEvent) {
var touch:Touch = e.getTouch(content) as Touch;
if (touch) {
//do something
}
}
然而,这仅在触摸Sprite的子元素时有效,而不是它们之间的空间。 我认为,如果我创建一个透明度较低的图像并将其粘贴在下面,它应该会接收到触摸事件,但是否有更好的方法呢?
我还考虑监听舞台上的触摸事件,并执行hitTestPoint()
的等效操作。
我想到了
var hitTest = (touch && content.hitTest(this.globalToLocal(new Point(touch.globalX, touch.globalY))));
但是这似乎也不起作用,只有当触摸到内容Sprite的子元素时,触摸事件才会起作用。
解决方案:
最终,我使用了一个带alpha通道的Quad,正如Cherniv所建议的。
bg = new Quad(width, height);
bg.alpha = 0;
addChildAt(bg, 0);
isTouching()
吗:http://doc.starling-framework.org/core/starling/events/Touch.html#isTouching()? - Ivan Chernykh