2013-07-26 2 views
1

AndEngine Live Wallpaper Extension을 기반으로 라이브 벽지를 만들고 있습니다. onCreateScene() 함수에서 터치 이벤트를 내 장면으로 설정했습니다.Android ACTION_UP 및 ACTION_MOVE이 (가) 라이브 벽지 AndEngine에서 작동하지 않습니다.

@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;   
} 

모든 오른쪽이 코드에 : 나는() 함수를 onSceneTouchEvent creat에 그 후

@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); 
} 

: 여기에 코드? 확인.

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

내가 두 번째 시간에 화면에 터치 : 내가 쓰고 로그에, 처음에 화면에 터치하면 내 휴대 전화 (삼성 갤럭시 S III 미니) ..., 그것을 실행하는거야 로그에 다음과 같이 쓰고 있습니다 :

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

... ACTION_DOWN만이 감지되었습니다! ACTION_UP 및 ACTION_MOVE이 작동하지 않습니다!

AndEngine Live Wallpaper Extension에서 모든 터치 이벤트를 사용할 수 없습니까? 누가 알 겠어? 이 문제를 해결하는 방법?

+0

문제가 해결) 나는이 같은 문제를 가진 사람들에게 도움이 될 희망

@Override public Engine onCreateEngine() { return new LiveWallpaperEngine(this); } public class LiveWallpaperEngine extends BaseWallpaperGLEngine { public LiveWallpaperEngine(IRendererListener pRendererListener) { super(pRendererListener); } @Override public void onTouchEvent(MotionEvent event) { mEngine.onTouch(null, MotionEvent.obtain(event)); } } @Override protected void onTap(int pX, int pY) { } 

: 당신의 LiveWallpaperService에서

이 코드를 삽입! – zharski

+1

답변을 게시해야합니다. – OrhanC1

답변

1

BaseWallpaperGLEngine 클래스를 다시 구현하여이 문제를 해결했습니다.

관련 문제