1

Actionscript 3 Starling ゲームへのすべてのマウス タッチ入力をブロックするにはどうすればよいですか?

基本的に、一定期間すべてのタッチ イベントを無視する必要があります。

4

2 に答える 2

3

オブジェクトをタッチ可能にしたくない場合は、「タッチ可能」プロパティを無効にできます。無効にすると、オブジェクトもその子もそれ以上タッチ イベントを受け取りません。

タッチを防ぐために新しい表示オブジェクトを追加する必要はありません。

this.touchable = false;

于 2013-11-07T18:34:16.703 に答える
1

迅速な解決策を開発しました!基本的に、画面のサイズのクワッドを作成し、それを最前面のレイヤーに追加します。

最前面レイヤー ファイルの init() 関数に追加します。

Starling.current.addEventListener('TOUCH_BLOCKER_ENABLE', touchBlockerEnable);
Starling.current.addEventListener('TOUCH_BLOCKER_DISABLE', touchBlockerDisable);

次に、次の関数を定義します。

private function touchBlockerEnable(e:Event):void
{
    if(!_quad)
    {
        _quad = new Quad(Starling.current.stage.width,Starling.current.stage.height,0xFFE6E6);
        _quad.x = 0;
        _quad.y = 0;
        _quad.alpha = 0.1;
        addChild(_quad);
    }
}

private function touchBlockerDisable(e:Event):void
{
    if(_quad)
    {
        removeChild(_quad);
        _quad = null;
    }
}

タッチ ブロッカーを有効にするには、この関数を呼び出します。

Starling.current.dispatchEvent(new Event('TOUCH_BLOCKER_ENABLE'));
于 2013-04-24T19:17:53.823 に答える