Ich habe ein Starling Sprite
, die ich Touch-Events für erhalten möchte. Eine Uhr mitTouch-Events für leeren Raum in einem Star Sprite
content.addEventListener(TouchEvent.TOUCH, onTouch);
function onTouch(e:TouchEvent) {
var touch:Touch = e.getTouch(content) as Touch;
if (touch) {
//do something
}
}
Dies ist jedoch nur funktioniert, wenn die Kinder des Sprite berührt werden und nicht auf den Raum dazwischen. Ich denke, wenn ich ein Alpha'd-Bild erzeuge und darunter klebst, sollte es die Berührungsereignisse aufgreifen, aber gibt es einen besseren Weg?
Ich dachte auch darüber nach, auf die Bühne zu hören und das Äquivalent einer hitTestPoint()
zu tun.
kam ich mit
var hitTest = (touch && content.hitTest(this.globalToLocal(new Point(touch.globalX, touch.globalY))));
up Aber dies scheint nicht, das Berührungsereignis nur dann, wenn Sprite ein Kind des Inhalts arbeitet arbeiten berührt wird.
Lösung:
Am Ende habe ich eine alpha'd verwendet Quad wie Cherniv vorgeschlagen
bg = new Quad(width, height);
bg.alpha = 0;
addChildAt(bg, 0);
Versuchen Sie 'isTouching()': http://doc.starling-framework.org/core/starling/events/Touch.html#isTouching()? – Cherniv