ImageButton, кажется, не обнаруживает клики (Scene2d.ui)

При попытке разместить простую кнопку ImageButton на сцене, похоже, она не обнаружила щелчков.

ImageButton btnStart = new ImageButton(ButtonArt.UP, ButtonArt.DOWN));

// btnStart.setClickListener(new ClickListener() {
//          @Override
//          public void click(Actor a, float arg1, float arg2) {
//             a.visible = false;
//          }
//       });

stage.addActor(btnStart);

ButtonArt.UP и ButtonArt.DOWN — это TextureRegions каждого состояния. Теперь, когда я нажимаю на кнопку, она не меняет состояние! Я также попробовал вышеупомянутый ClickListener (для тестирования), но, похоже, это тоже не сработало.

В моем методе рендеринга я просто вызываю stage.act() и stage.render(). Я также пытался рисовать TextureRegions с помощью SpriteBatch в моем методе рендеринга, и на самом деле это разные текстуры.

Я делаю что-то неправильно?


person user717572    schedule 30.04.2012    source источник


Ответы (1)


Вам нужно будет установить сцену в качестве вашего процессора ввода:

Gdx.input.setInputProcessor(stage);

Если вам нужно иметь несколько обработчиков ввода (например, вам нужны щелчки, зарегистрированные за пределами вашей сцены), вам нужно будет использовать InputMultiplexer, например:

InputMultiplexer plex = new InputMultiplexer();
plex.addProcessor(myOtherProcessor);
plex.addProcessor(stage);
Gdx.input.setInputProcessor(plex);
person Matsemann    schedule 30.04.2012
comment
Спасибо, я не знал, что вам нужно установить inputProcessor. - person user717572; 01.05.2012