可重复使用的scene2d对话框

时间:2016-01-27 14:20:58

标签: libgdx scene2d

scene2d模式对话框的典型用例是在其中有两个按钮,一个用于用户操作确认,另一个用于取消。

只需单击此取消按钮即可关闭(隐藏)对话框窗口(这是默认行为,基本上只需要所有操作,因为我们不希望发生任何事情),但随后重复应该执行的操作再次显示它(例如,单击“删除”按钮以显示删除确认对话框)会导致无效(因为对话框现在已隐藏)。

启用对话框的正确方法是什么?

应该在No按钮监听器中调用show()吗?

noButton.addListener(new ClickListener() {
                @Override
                public void clicked(InputEvent event, float x, float y) {
                    deleteDialog.show(stage);
                };

official scene2d code example每次都会创建一个新对话框,但我的理解是重用这些元素会更好。

1 个答案:

答案 0 :(得分:1)

我猜你的对话框是一个变量:

Group dialog = new Group();

你可以这样添加:

stage.addActor(dialog);

要删除的侦听器 - 删除方法不会删除任何内容,它只是从舞台中删除了演员:

noButton.addListener(new ClickListener() {
    @Override
    public void clicked(InputEvent event, float x, float y) {
        dialog.remove();
    };  

然后当你想再次显示它时:

stage.addActor(dialog);