【问题标题】:andEngine Can't get ACTION_UP in onSceneTouchEventandEngine 无法在 onSceneTouchEvent 中获取 ACTION_UP
【发布时间】:2012-06-24 10:17:50
【问题描述】:

我在使用 Scene Touch Listener 时遇到了一些问题。我只收到 ACTION_DOWN 事件。我从来没有收到 ACTION_UP 或 ACTION_MOVE 事件。我做错了什么?请帮帮我。

我已经按如下方式覆盖了 onSceneTouchEvent:

@Override
public boolean onSceneTouchEvent(final Scene pScene,
        final TouchEvent pSceneTouchEvent) {
    switch (pSceneTouchEvent.getAction()) {
    case TouchEvent.ACTION_DOWN:
        Log.d(TAG, "onSceneTouchEvent # ACTION_DOWN");
        break;
    case TouchEvent.ACTION_UP:
        Log.d(TAG, "onSceneTouchEvent # ACTION_UP");
        break;
    }
    return true;
}

*注意:我已经返回 true,但它仍然只得到 ACTION_DOWN

【问题讨论】:

  • 嗯,这很奇怪。这里看不出有什么问题,我使用了类似的东西——尽管我的场景不是最终的。但这不应该是这样。您是否尝试过检查运动事件?类似if(event.getAction() == motionEvent.ACTION_MOVE)if(event.getAction() == MotionEvent.ACTION_DOWN)。如果这个被注册会很有趣。
  • 哦,抱歉,刚刚发现你已经说过了。
  • 非常感谢您的回复。我按照你的解决方案做了,但它仍然有同样的问题。 (T_T)
  • 在switch语句前加上以下内容:Log.i("Logged TouchEvents", ""+pSceneTouchEvent.getAction());您正在执行哪些操作?

标签: android andengine


【解决方案1】:

永远不要使用开关盒。因为它只会选择一种情况,而action down是第一个动作,它将永远选择..另一个动作将被忽略。

改用这个:

if(pSceneTouchEvent.isActionDown){
   //code action down here
}
if(pSceneTouchEvent.isActionMove){
   //code action move here
}
if(pSceneTouchEvent.isActionUp){
   //code action up here
}

【讨论】:

    【解决方案2】:

    您是否在其他任何地方收听场景触摸事件?可能是您正在侦听动作并在其传播到此侦听器之前在那里处理它(返回 true)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多