1

これは初心者の質問です。このメソッドからのブール値の戻り値が同じなのはなぜですか? (true または false は同じ結果になります)

@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
            if(pSceneTouchEvent.isActionUp()) {
                Log.i("testing", "always happen regardless the boolean return");
            }  
            Log.i("asdf", "i thought this line won't happen if return false");
            return false;
        }


@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
            if(pSceneTouchEvent.isActionUp()) {
                Log.i("testing", "always happen regardless the boolean return");
            }  
            Log.i("asdf", "return true, always happen");
            return true;
        }

何が違うのか、どちらが正しいのか教えてください。

下手な英語でごめんなさい

4

1 に答える 1

0

trueを返すと、タッチ コマンドが処理されたことを Android に伝えます。したがって、このコードが実行されて true が返された場合、Android はタッチ アクションが実行する可能性のある他のコードを探しません (たとえば、シーンの下に何かがある場合)。これは、積み重ねられたアイテムを持っていて、タッチ アクションがスタックの一番上にあるアイテムにのみ影響するようにしたい場合、または背景をタッチに反応させたいがゲームを妨げないようにしたい場合に便利です。

于 2013-11-10T10:12:44.283 に答える