Corona SDK / Lua无法使用外部模块

时间:2015-08-01 07:45:21

标签: lua corona

我最近开始使用Corona SDK在Lua中编程来制作应用程序而我无法使用main.lua来使用menu.lua的功能。我一直在收到错误。这是我的代码。谢谢你的时间。

    --main.lua--
    local menu = require( "menu" )
    menu.backgroundStart()

    --menu.lua--
    local transition = require("transition")

menu = {}
backgroundStart = function (  )
    local background = display.setBackground( 0, 0, 0)
    animationStart();
end

animationStart = function ()

    local pixelRadius = 5
    local xCenter = math.random(0, display.contentWidth)
    local yCenter = math.random(0, display.contentHeight)
    local whiteCircles = display.newCircle( background, xCenter, yCenter, pixelRadius )
    whiteCircles.setBackground(255,255,255);
    transition.fadeIn( whiteCircles, { time = 200, delay = 10 } )
end
return M;
end

我得到的错误有这样的文字: 错误加载模块'菜单'来自档案' menu.lua': menu.lua:24''预计将近'结束' 堆栈追溯: C:在功能中要求' ?:在功能中要求' main.lua:主要的6块 你想重新启动这个项目吗?

2 个答案:

答案 0 :(得分:0)

问题不在于Corona或使用外部模块。正如错误消息所示(error loading module 'menu' from file 'menu.lua': menu.lua:24 '' expected near 'end'),问题出现在menu.lua的第24行,这意味着文件已正确加载。我的猜测是你在第24行还有一个end语句而不是需要的语句,这会产生'<eof>' expected near 'end'个消息(并且<eof>被丢弃了。)

修复(以及任何其他)问题,并且您的模块应该正常加载。

答案 1 :(得分:0)

首先,您不需要转换,它包括在内。任何方式你必须将你的功能添加到你正在返回的表中:

menu = {}
menu.backgroundStart = function (  )

menu.lua的最后一行应该是

return menu

然后,当您需要该模块时,代码会执行并返回菜单表,而在main.lua中,您现在可以访问这些函数。

在menu.lua模块的末尾,你确实有一个额外的结局。