Tom*_*Tom 5 flash actionscript-3 touch starling-framework
我有一个Starling Sprite
,我想要获得触摸事件.我正在使用
content.addEventListener(TouchEvent.TOUCH, onTouch);
function onTouch(e:TouchEvent) {
var touch:Touch = e.getTouch(content) as Touch;
if (touch) {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这只适用于Sprite的子项被触摸而不是它们之间的空间.我想如果我创建一个alpha'd图像并在其下面粘贴它应该接收触摸事件,但有更好的方法吗?
我也在考虑听取舞台上的触摸并做相当于一个hitTestPoint()
.
我想出来了
var hitTest = (touch && content.hitTest(this.globalToLocal(new Point(touch.globalX, touch.globalY))));
Run Code Online (Sandbox Code Playgroud)
但这似乎也不起作用,触摸事件仅在触摸内容Sprite的子项时才起作用.
解:
最后,我使用了切尔尼夫建议的alpha'd Quad
bg = new Quad(width, height);
bg.alpha = 0;
addChildAt(bg, 0);
Run Code Online (Sandbox Code Playgroud)