使用 'gotoScene' 时,新场景出现,但是之前的场景仍然可见

我正在尝试使用 Corona 编写一个应用程序,让它可以切换到一个新的场景。经过多次尝试,并查看其他人的示例,我已经让第二个场景加载到了屏幕上。

然而,当第二个场景加载时,没有过渡效果,并且之前的场景仍然可见,导致 scene1 和 scene2 都可见。

我的 main.lua 文件:

local composer = require("composer")

display.setStatusBar(display.HiddenStatusBar)

composer.gotoScene("scene1")

我的 scene1.lua 文件:

local composer = require("composer")
local scene = composer.newScene()

function scene:create(event)

  local sceneGroup = self.view

  local transitionOptions =
  {
    effect = "fade",
    time = 2000
  }

  local function gotoScene2(event)

    composer.gotoScene("scene2", transitionOptions)

  end

  local rect = display.newRect(display.contentCenterX,
display.contentCenterY, 50, 50)

  rect:addEventListener("tap", gotoScene2)

end

scene:addEventListener("create", scene)

return scene

我的 scene2.lua 文件:

local composer = require("composer")
local scene = composer.newScene()

function scene:create(event)

  local circ = display.newCircle(display.contentCenterX, 100, 25)

end

scene:addEventListener("create", scene)

return scene

我无法找出我的问题在哪里,所以任何帮助将是极好的,谢谢。

点赞
用户7026995
用户7026995

scene1.lua 文件的 scene:create 函数结尾处添加以下代码:

sceneGroup:insert(rect)

同样适用于 scene2 中的 circ。此提示摘自 Corona 文档

请记住,您必须将场景显示对象插入场景的 self.view 组中。如果您创建了显示对象但未将它们插入此组中,则它们将位于 Composer 舞台的前面,并且它们将不被视为场景的一部分。对于应该是场景的一部分并由 Composer “管理”的显示对象(例如,在删除场景时清理),您必须将它们插入场景的 self.view 组中。

2017-04-19 16:28:04