6

Spriteタッチイベントを取得したいスターリングがあります。使っています

content.addEventListener(TouchEvent.TOUCH, onTouch); 

function onTouch(e:TouchEvent) {

    var touch:Touch = e.getTouch(content) as Touch;
    if (touch) {
        //do something
    }
}

ただし、これはスプライトの子が触れられた場合にのみ機能し、それらの間のスペースでは機能しません。アルファ化された画像を作成してその下に貼り付けると、タッチイベントを取得する必要があると考えていますが、より良い方法はありますか?

ステージでのタッチを聞いて、 に相当することも考えていましたhitTestPoint()

私が思いついた

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

しかし、これも機能していないようです。タッチ イベントは、コンテンツのスプライトの子がタッチされた場合にのみ機能します。

解決:

最後に、チェルニフが提案したように、アルファ化されたクワッドを使用しました

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

2 に答える 2

3

で軽量透明Quad( は必要ありませんImage) を使用してみてくださいSprite

于 2013-05-24T12:36:17.493 に答える
0

お役に立てば幸いです。

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
        }
    }
于 2013-05-24T12:54:15.503 に答える