В этом коде:MotionEvent изменяется от ACTION_UP к ACTION_DOWN
private static MotionEvent e1;
private static float start;
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getActionMasked() == MotionEvent.ACTION_UP) {
MotionEvent e2 = event;
float velocityX = Math.abs((e1.getX() - e2.getX())/start);
float velocityY = Math.abs((e1.getY() - e2.getY())/start);
onFling(e1, event, velocityX, velocityY);//BREAKPOINT 2
} else if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
e1 = event;
start = System.currentTimeMillis()/1000;//BREAKPOINT 1
}
return Game.onTouchEvent(event);
}
Если я ставлю точку останова на строке "BreakPoint 1", я понимаю, что: e1.getActionMasked()
равно ACTION_DOWN
. Но когда он останавливается в «BREAKPOINT 2», я получаю, что e1
равно event
. Также, если я добавлю && event != e1
к первому «если», код в нем пропущен. Почему это происходит?
Если вы хотите знать, почему я использую этот подход, чтобы заменить onFling()
увидеть это: onFling not being called in a costum View
что? я единственный, кто не понимает, что было задано? –
@Pavel Dudka, Извините, вы сейчас это понимаете? Я пытаюсь подражать работе 'onFling()' – EmmanuelMess