如何在 Corona SDK(Lua)中从脚本中获取变量到其他脚本

我想从 main.lua 脚本中获取一个变量,并将其传递到 menu.lua 中。

点赞
用户3902590
用户3902590

有许多方法可以做到这一点。我会给你两种方法。

全局变量

可能是最简单的方法,但也很容易变得非常混乱。

your-project/main.lua

--
-- main.lua
--
myVariableFromMain1 = "hello world"
myVariableFromMain2 = "another sample variable"
composer.gotoScene( "menu" )

your-project/menu.lua

--
-- menu.lua
--
local composer = require( "composer" )
local scene = composer.newScene()
function scene:create( event )
    local sceneGroup = self.view
    print(myVariableFromMain1) -- 输出 "hello world!"
    print(myVariableFromMain2) -- 输出 "another sample variable"
end
scene:addEventListener( "create", scene )
return scene

composer.gotoScene( ... ) 中传递参数

这是 Corona 建议的方法。请查看 https://docs.coronalabs.com/api/library/composer/gotoScene.html 中的“场景选项”。

your-project/main.lua

--
-- main.lua
--
composer.gotoScene( "menu", { params = {
    myVariableFromMain1 = "hello world!",
    myVariableFromMain2 = "another sample variable"
}} )

your-project/menu.lua

--
-- menu.lua
--
local composer = require( "composer" )
local scene = composer.newScene()
function scene:create( event )
    local sceneGroup = self.view
    print(myVariableFromMain) -- 输出 "hello world!"
end
scene:addEventListener( "create", scene )
return scene

如果您希望了解另一种让 menu.luamain.lua 共享信息的方法,请在评论中告诉我。我很乐意为此帖子增加内容。

2019-10-03 17:51:56