他们是否知道演员何时被从舞台上移除? (事件?) 我需要知道什么时候删除它并不打算删除。
答案 0 :(得分:2)
您可以覆盖setStage(Stage stage)
,当stage
为null
时,您可以采取行动......
看看这个:
@Override
protected void setStage(Stage stage) {
super.setStage(stage);
if (stage != null) {
// Actor added to stage
} else {
// Actor removed from stage
}
}
这可能是一种概念上的错误方式,因为Scene2d旨在不管理此类事件。但有时真的有必要有这样的钩子。也许@noone描述的解决方案更好,但这是一种更清洁的方式。
答案 1 :(得分:0)
没有那样的东西。您通常会自己删除演员,因此您可以在那里触发自定义事件。
也不可能创建一种新类型的Stage
来触发这样的事件,因为Stage
实际上并不直接了解演员。 Stage
有一个" root"有孩子的Group
。那些孩子也可以生孩子,在打电话给Actor.remove()
时,演员实际上只是从父母的孩子名单中删除了自己。这将是触发此类事件的好地方,但父Group
甚至可能不会附加到Stage
。此外,创建一个新的Actor
或Group
类可以激活这样的事件,以防你使用" native" scene2d.ui,因为那些已经扩展了本机libgdx类。这里唯一的选择是更改libgdx实现以添加此默认行为。
只要您执行Actor.remove()
,就可以更轻松地自己调用事件监听器方法。