当试图在舞台上放置一个简单的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,它们实际上是不同的纹理。
我做错了吗?
答案 0 :(得分:8)
您需要将舞台设置为输入处理器:
Gdx.input.setInputProcessor(stage);
如果您需要多个输入处理器(例如,您需要在场景外注册的点击),则需要使用InputMultiplexer,如下所示:
InputMultiplexer plex = new InputMultiplexer();
plex.addProcessor(myOtherProcessor);
plex.addProcessor(stage);
Gdx.input.setInputProcessor(plex);