【问题标题】:How to pass variable from another lua file?如何从另一个lua文件传递变量?
【发布时间】:2017-05-23 08:37:34
【问题描述】:

如何从另一个 lua 文件传递​​变量?我试图将文本变量标题作为文本传递给另一个 b.lua。

a.lua

local options = {
    title = "Easy - Addition", 
    backScene = "scenes.operationMenu", 
}

b.lua

   local score_label_2 = display.newText({parent=uiGroup, text=title, font=native.systemFontBold, fontSize=128, align="center"})

【问题讨论】:

    标签: variables lua parameter-passing


    【解决方案1】:

    有几种方法可以做到这一点,但最简单的方法是将“a.lua”视为一个模块,并通过require将其导入“b.lua”

    例如在

    -- a.lua
    local options =
    {
      title = "Easy - Addition",
      backScene = "scenes.operationMenu",
    }
    
    return options
    

    -- b.lua
    local options = require 'a'
    local score_label_2 = display.newText
      {
        parent = uiGroup,
        text = options.title,
        font = native.systemFontBold,
        fontSize = 128,
        align = "center"
      }    
    

    【讨论】:

    • 谢谢,如果我将多个lua文件分配给一个变量,是否也可以?例如。本地选项 = 需要 'a','c','d' ?
    • 这可能没有多大意义。 require 'a' 返回的是“a.lua”返回的内容——在这种情况下,是“a.lua”中的本地 options。只需为每个需要使用不同的变量名称即可。
    【解决方案2】:

    您可以将文件a.lua 导入到变量中,然后将其用作普通表。

    b.lua

    local a = require("a.lua")
    print(a.options.title)
    

    【讨论】:

    • 请使用edit链接解释这段代码是如何工作的,不要只给出代码,因为解释更有可能帮助未来的读者。另见How to Answersource
    • 好的,先生,我的错。谢谢您的帮助,但是如果我将多个 lua 文件分配给单个变量也可以吗?例如。 local a = require("a.lua","b.lua")
    • 为了分配多个lua文件,你可能需要重新定义require关键字来支持任意数量的参数,像这样:stackoverflow.com/questions/9145432/…,那么你所要做的就是合并表,像这样:stackoverflow.com/questions/1283388/lua-merge-tables.
    • a.lua 的主体不会返回任何内容,所以在 local a = require("a.lua") 之后,a 将是 nil
    猜你喜欢
    • 2014-07-02
    • 1970-01-01
    • 2021-05-25
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    相关资源
    最近更新 更多