Android ACTION_UP和ACTION_MOVE不';不要在现场壁纸和发动机中工作
我正在创建基于AndEngine live墙纸扩展的live墙纸。 在函数onCreateSecene()中,我将触摸事件设置为我的场景。以下是代码:Android ACTION_UP和ACTION_MOVE不';不要在现场壁纸和发动机中工作,android,touch,andengine,live-wallpaper,Android,Touch,Andengine,Live Wallpaper,我正在创建基于AndEngine live墙纸扩展的live墙纸。 在函数onCreateSecene()中,我将触摸事件设置为我的场景。以下是代码: @Override public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) { mEngine.registerUpdateHandler(new FPSLogger()); parallaxBackground = new ParallaxBack
@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;
}
这个代码中的所有内容都正确吗?
好啊我正在我的手机上运行它(三星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
Logged TouchEvent DOWN 0
Logged TouchEvent DOWN 0
Logged TouchEvent DOWN 0
Logged TouchEvent DOWN 0
.....
…只检测到操作\u DOWN!
行动起来,行动起来不起作用
也许所有的触控事件在安德林Live墙纸扩展中都不可用?谁知道呢?
如何解决这个问题?我通过重新实现BaseWallperGlengine类来解决这个问题 在LiveWallperService中插入以下代码:
@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) {
}
我希望这能对有同样问题的人有所帮助;) 我通过重新实现BaseWallperGlengine类来解决它 在LiveWallperService中插入以下代码:
@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) {
}
我希望这能对有同样问题的人有所帮助;) 你应该发布一个答案…你应该发布一个答案。。。