0
我写了一个带有两个演员的屏幕,我想在事件之后将一个页面替换为另一个页面。但是从舞台中删除第一页的演员,并添加第二个页面演员后,我没有看到既不是第一个,也不是第二页演员:(libgdx - 在删除另一个演员后未添加演员
class PageScreen extends Screen {
def createPage(n:Int):Page = ...
...
var stage:Stage = _
var page:Page = _ // Page extends WidgetGroup
var menu:Menu = _ // Menu extends WidgetGroup
// mbassador subscribe to events
bus.subscribe(this)
@Handler
def handleEvent(message: TailBookEvent): Unit = {
message match {
case ForwardPageButtonPressedEvent(_) =>
stage.getActors.removeValue(page, true) // I tried everything
stage.getRoot.removeActor(page) // I tried everything
page = createPage(4)
page.setDebug(true)
stage.addActor(page) // I tried everything
stage.getRoot.addActor(page) // I tried everything
stage.getActors.add(page) // I tried everything
...
}
}
override def show(): Unit = {
stage=new Stage(new ScreenViewport())
page = createPage(1)
menu = new Menu(page.pageAtlas)
stage.addActor(page)
stage.addActor(menu)
Gdx.input.setInputProcessor(stage)
}
override def render(delta: Float): Unit = {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT)
if (stage != null) {
stage.act(delta)
stage.draw()
}
}
override def resize(width: Int, height: Int): Unit = {
if (stage != null) stage.getViewport().update(width, height, true)
menu.setBounds(0, 0, width, height)
page.setBounds(0, 0, width, height)
}
override def dispose(): Unit = {
if (stage != null) stage.dispose()
}
...
}
即使这个代码将删除一切从屏幕:
stage.clear()
page = createPage(page.pageNumber+1)
page.setDebug(true)
stage.addActor(page)
stage.addActor(menu)
我在做什么错?