我有 DialogActor,它扩展了 LIBGDX 对话框类。当我启动一个实例时,它会按预期显示对话框,并提供“恢复”、“Top5”和“退出”按钮的正确功能。当我选择“Top 5”时,会正确创建另一个 LIBGDX 对话框对象。但是,当我退出该对象时,我看到第一个对话框对象(如预期),但无法选择“恢复”或“退出”。我猜按钮点击已经被消耗掉了。我该如何解决这个问题?
public DialogActor(String pTitle, Skin pSkin){
super(pTitle, pSkin);
button("Resume", "Resume");
button("Top 5", "Top 5");
button("Quit", "Quit");
}
@Override
protected void result(final Object object){
if (object == "Resume") {
remove();
} else if (object == "Top 5"){
Top5Dialog top5Dialog = new Top5Dialog("", skin);
top5Dialog.show(stage);
} else if (object == "Quit"){
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
System.exit(0);
}
}
默认情况下,单击按钮后第一个对话框将隐藏,除非您调用
com.badlogic.gdx.scenes.scene2d.ui.Dialog#cancel
。不确定你是否在这里这样做。
在您的情况下,对话框仍然存在,但不再做出反应。我的猜测是
hide
已被触发,我认为这会删除听众。也许您没有在渲染循环中调用 stage.act()
,这可能会导致对话框未完成其淡出动画并且仍然显示可见。