从不同的lua文件调用函数

时间:2014-03-10 14:31:38

标签: function module lua corona

我在menu.lua

中有这个
local db = require "databaseconnection"
...
local function onEndBtnRelease()
    local thisandthat = db.getLoggedIn()
    native.showAlert( "Corona SDK", thisandthat.." teststring", { "OK" } )
end
...

,这在databaseconnection.lua

local function getLoggedIn()
    print("Test")
    --[[...
    ]]--

    return "some data"
end 

我唯一想要的是来自"some data"的String(getLoggedIn()),但我得到的只是一个错误:

  

... \ corona \ menu.lua:51:尝试调用字段'getLoggedIn'(零值)

永远不会达到外单。 我正在使用Corona SDK和Sublime,来自isLoggedIn()的所需数据来自sqlite-request。我怎样才能达到这个功能?

3 个答案:

答案 0 :(得分:6)

编写模块的一种直接方法是返回一个包含所需函数的表:

local M = {}

function M.getLoggedIn()
    print("Test")
    --...
    return "some data"
end 

return M

请注意,该函数必须是非local,否则它将是私有的。

有关其他高级方法,请参阅PiL

答案 1 :(得分:0)

你也可以制作印章课

只需在类的顶部写下行(databaseconnection.lua)

module(..., package.seeall)

比在main.lua中调用你的函数,它将返回你想要的相同值。

答案 2 :(得分:0)

您也可以通过这种方式获取数据。

在menu.lua文件中要求("数据库连接")并调用get login函数。

local abc = getLoggedIn()

print(abc)