ImageButton似乎没有检测到点击次数(Scene2d.ui)

时间:2012-04-30 15:33:36

标签: java user-interface libgdx stage

当试图在舞台上放置一个简单的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(用于测试),但它似乎也没有用。

在我的render方法中,我只调用stage.act()和stage.render()。 我也尝试在我的渲染方法中使用SpriteBatch绘制TextureRegions,它们实际上是不同的纹理。

我做错了吗?

1 个答案:

答案 0 :(得分:8)

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

Gdx.input.setInputProcessor(stage);

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

InputMultiplexer plex = new InputMultiplexer();
plex.addProcessor(myOtherProcessor);
plex.addProcessor(stage);
Gdx.input.setInputProcessor(plex);