1

AndEngine Live Wallpaper Extension に基づいてライブ壁紙を作成しています。関数 onCreateScene() で、シーンにタッチ イベントを設定しました。コードは次のとおりです。

@Override
public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) {
  mEngine.registerUpdateHandler(new FPSLogger());

  parallaxBackground = new ParallaxBackground(0, 0, 0);
  parallaxBackground.attachParallaxEntity(new ParallaxEntity(1.0f, mySprite));
  mCurrentScene.setBackground(parallaxBackground);

  mCurrentScene.setOnSceneTouchListener(this);

  pOnCreateSceneCallback.onCreateSceneFinished(mCurrentScene);
}

その後、onSceneTouchEvent() 関数を作成します。

@Override
public boolean onSceneTouchEvent(Scene scene, TouchEvent event) {
switch(event.getAction()){
    case TouchEvent.ACTION_DOWN:                    
        Log.i("Logged TouchEvent DOWN", ""+event.getAction());
        break;
    case TouchEvent.ACTION_MOVE:
        Log.i("Logged TouchEvent MOVE", ""+event.getAction());
        break;
    case TouchEvent.ACTION_UP:
        Log.i("Logged TouchEvent UP", ""+event.getAction());
        break;
}
return true;        
}

このコードは大丈夫ですか? Ok。私は自分の携帯電話(Samsung Galaxy S III mini)で実行しています...初めて画面をタッチすると、ログに次のように書かれています:

AndEngine                     org.andengine.input.touch.TouchEvent$TouchEventPool<TouchEvent> was exhausted, with 0 item not yet recycled. Allocated 1 more.
Logged TouchEvent DOWN        0

2回目などに画面に触れると、ログに次のように書かれています:

Logged TouchEvent DOWN        0
Logged TouchEvent DOWN        0
Logged TouchEvent DOWN        0
Logged TouchEvent DOWN        0
.....

... ACTION_DOWN のみが検出されました! ACTION_UP と ACTION_MOVE が機能しません!

AndEngine ライブ壁紙拡張機能では、すべてのタッチ イベントを使用できない可能性がありますか? 誰が知っていますか?この問題を解決するには?

4

1 に答える 1