4

尝试在舞台上放置一个简单的 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()。我还尝试在我的渲染方法中使用 SpriteBatch 绘制 TextureRegions,它们实际上是不同的纹理。

难道我做错了什么?

4

1 回答 1

8

您需要将舞台设置为输入处理器:

Gdx.input.setInputProcessor(stage);

如果您需要多个输入处理器(例如,您需要在场景之外注册点击),您将需要使用 InputMultiplexer,如下所示:

InputMultiplexer plex = new InputMultiplexer();
plex.addProcessor(myOtherProcessor);
plex.addProcessor(stage);
Gdx.input.setInputProcessor(plex);
于 2012-04-30T21:00:06.757 回答