У меня есть ImageButton в моей игре LibGDX с незначительной ошибкой, которая может раздражать пользователя. Если бы я нажал на кнопку, но решил не хотеть щелкнуть ее, я бы оттащил палец.
Однако, даже если мой палец больше не находится поверх ImageButton после его перетаскивания, метод touchUp()
по-прежнему вызывается.ImageButton touch event по-прежнему называется после перетаскивания пальца
Как остановить событие touchUp?
Я не знаю, может ли каким-то образом получить границы этого ImageButton (как это будет происходить) и увидеть, соответствует ли местоположение touchUp, может работать. Я пробовал искать его, но до сих пор мне не удалось найти ничего, потому что моя проблема очень специфична.
Это, как я инициализируется моя кнопка:
retryButton = new ImageButton(getDrawable(new Texture("RetryButtonUp.jpg")), getDrawable(new Texture("RetryButtonDown.jpg")));
retryButton.addListener(new InputListener() {
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
return true;
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
if(touchable) {
game.setScreen(new PlayScreen(game, difficulty));
dispose();
}
}
});
Благодаря ... у вас есть какие-либо идеи, почему мой вопрос получил downvotes? – Eames
Кнопка уже имеет встроенный ClickListener - имеет смысл добавить ChangeListener, а не другой ClickListener, чтобы избежать избыточной обработки ввода. Не знаю, почему ваш вопрос был приостановлен - выглядит хорошо. – Tenfour04