KeyUp / KeyDown只被捕获一次

时间:2015-04-03 19:00:20

标签: libgdx

每次按下BACK或SCAPE键时,我都会尝试显示一个对话框。然而,事件只被捕获一次,对话框显示但是如果我按下我的按钮NO关闭它,那么它将永远不会再出现,直到我转到另一个屏幕。

这就是我捕获KeyUp事件的方式:

@Override
public boolean keyUp(int keycode) {     
    if (keycode == Keys.BACK || keycode == Keys.ESCAPE) {

        dialog.setVisible(true);
    }
    return false;
}

这是我在对话框中的按钮:

    btnNo.addListener(
            new ClickListener() {
                public boolean touchDown(InputEvent event, float x, float y, int pointer, int button)
                {
                    return true;
                }

                public void touchUp(InputEvent event, float x, float y, int pointer, int button){
                    dialog.setVisible(false);
                }
            });

如果您有任何想法,请告诉我......

2 个答案:

答案 0 :(得分:0)

查看以下网站,他们有关于如何在LibGDX中使用Dialog的明确说明http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/Dialog.html

答案 1 :(得分:0)

我的问题已通过Render()中的以下块代码解决:

    if (Gdx.input.isKeyPressed(Keys.BACK) || Gdx.input.isKeyPressed(Keys.ESCAPE)){
        Gdx.input.setCatchBackKey(true);
        dialog.setVisible(true);
    }