actionscript-3 flash touch starling-framework

actionscript 3 - Toque eventos para espacio vacío dentro de un sprite starling



actionscript-3 flash (2)

Tengo un Starling Sprite que quiero obtener eventos táctiles. A estoy usando

content.addEventListener(TouchEvent.TOUCH, onTouch); function onTouch(e:TouchEvent) { var touch:Touch = e.getTouch(content) as Touch; if (touch) { //do something } }

Sin embargo, esto solo funciona cuando los hijos del Sprite son tocados y no en el espacio entre ellos. Estoy pensando que si creo una imagen alpha''d y me quedo debajo, entonces debería elegir los eventos táctiles, pero ¿hay una mejor manera?

También estaba pensando en escuchar el toque en el escenario y hacer el equivalente de un hitTestPoint() .

se me ocurrio

var hitTest = (touch && content.hitTest(this.globalToLocal(new Point(touch.globalX, touch.globalY))));

Pero esto tampoco parece funcionar, el evento táctil solo funciona cuando se toca a un elemento secundario del contenido de Sprite.

Solución:

Al final usé un Quad alpha''d como lo sugirió Cherniv

bg = new Quad(width, height); bg.alpha = 0; addChildAt(bg, 0);


Espero que sea útil para ti.

content.addEventListener(TouchEvent.TOUCH, onTouch); function onTouch(e:TouchEvent) { var touch:Touch = e.getTouch(stage) as Touch; if(touch && touch.phase == TouchPhase.BEGAN){ //do something } } or addEventListener(TouchEvent.TOUCH, onTouch); function onTouch(e:TouchEvent) { var touch:Touch = e.getTouch(sprite(eve.target)) as Touch; if(touch && touch.phase == TouchPhase.BEGAN){ //do something } }


Intenta usar Quad transparente ligero (sin necesidad de una Image ) en tu Sprite .