2012-06-24 2 views
3

У меня возникли проблемы с прослушивателем сцены. Я получаю только события ACTION_DOWN. Я никогда не получаю ACTION_UP или ACTION_MOVE событий. Что я сделал не так? Пожалуйста, помогите мне .andEngine Не удается получить ACTION_UP в onSceneTouchEvent

Я заменяете 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; 
} 

* извещение: я возвращаю правда уже, но все равно получите только ACTION_DOWN

+0

Ну, это странно. Не вижу здесь ничего плохого, и я использовал что-то подобное, хотя моя сцена не была окончательной. Но это не должно быть. Вы пытались проверить событие движения? Что-то вроде 'if (event.getAction() == motionEvent.ACTION_MOVE)' или 'if (event.getAction() == MotionEvent.ACTION_DOWN)'. Было бы интересно, если он зарегистрирован. – GameDroids

+0

О, извините, просто понял, что вы уже сказали это. – GameDroids

+0

Большое спасибо за ответ. Я сделал это после вашего решения, но у него все та же проблема. (T_T) –

ответ

0

Вы слушаете сцены сенсорных событий в любом другом месте? Возможно, вы слушаете действие и обрабатываете его там (возвращаете true), прежде чем он будет распространяться на этого слушателя.

1

никогда не использовать чехол для ключей. потому что он выберет только один случай, а действие вниз - это первое действие, которое выберете навсегда .. другое действие будет проигнорировано.

использование вместо этого:

if(pSceneTouchEvent.isActionDown){ 
    //code action down here 
} 
if(pSceneTouchEvent.isActionMove){ 
    //code action move here 
} 
if(pSceneTouchEvent.isActionUp){ 
    //code action up here 
} 
Смежные вопросы