试图连接全局'sceneName'(nil值)

问题描述 投票:2回答:1

我的项目中只有2个脚本,两个脚本都少于10行。其中一个名为main.lua,另一个名为scene1.lua。我试图在打开应用程序时从main.lua转到scene1.lua,但是我一直收到此错误。

这是main.lua的代码

local composer = require("composer")

local scene = composer.newScene("main")

composer.gotoScene("scene1")

这是scene1.lua的代码

local composer = require("composer")

local scene = composer.newScene("scene1")

display.newText{
    text = "Hello"
}

打开应用程序时,我在左上角看到的文字是“你好”,但在收到此错误后立即显示:

Attempt to concatenate global 'sceneName' (a nil value)
File: ?
stack traceback:
?: in function 'gotoScene'
main.lua:5: in main chunk

我去了Wiki,复制并粘贴了确切的示例,并替换了一些代码以使用我自己的代码,但无济于事

lua corona
1个回答
0
投票

您可以尝试这个:

local composer = require("composer")

local scene = composer.newScene("scene1")

function scene:create(event)
local view = self.view
local text = display.newText{
text = "Hello"
}
view:insert(text)
end

function scene:destroy(event)
end

function scene:enter(event)
end

function scene:exit(event)
end

Runtime:addEventListener("create", scene)
Runtime:addEventListener("destroy", scene)
Runtime:addEventListener("enter", scene)
Runtime:addEventListener("exit", scene)

return scene

用于解释

local composer = require("composer")

composer.gotoScene("scene1")

但是,scene1.lua必须是有效的场景文件。期望您将需要Composer。创建一个新场景。定义四个事件功能并设置其处理功能。最后,模块必须“返回”场景。

我们提供默认场景模板:this link

如果您以所有场景为基础,而仅添加为基础,那么您将始终拥有一个良好的基础场景。这是您可以使用的最小设置。

© www.soinside.com 2019 - 2024. All rights reserved.