Corona Lua呼叫外部功能

时间:2013-06-05 15:02:22

标签: function lua corona

我有block_basic.lua,我想在touch_input.lua中调用另一个函数

block_basic.lua:

local screen_touch = require( "touch_input")
local onScreenTouch = screen_touch.onScreenTouch

local function touched( event )
-- 'self' parameter exists via the ':' in function definition

print(onScreenTouch, screen_touch, event)

end

从我所看到的事件似乎是正确的(表),screen_touch也是正确的。但是函数(screen_touch.onScreenTouch)总是为零,我不知道为什么

在touch_input.lua中我只想:

local function onScreenTouch( event )
-- no 'self' parameter

等。等

为什么没有?为什么我不能打电话给它?

2 个答案:

答案 0 :(得分:1)

您没有在touch_input.lua中显示您返回的内容,但如果您希望脚本的前两行有效,则需要如下所示:

local function onScreenTouch( event )
...
return {
  onScreenTouch = onScreenTouch
}

由于第2行没有遇到运行时错误,您可能已经返回了一个表,但是您需要确保该表的onScreenTouch字段指向onScreenTouch函数

答案 1 :(得分:1)

以下是您的文件:

<强> touch_input.lua:

local M = {}

M.onScreenTouch = function( event )
    --some code here
end

return M

<强> block_basic.lua:

local screen_touch = require( "touch_input")

local onScreenTouch = screen_touch.onScreenTouch


print(onScreenTouch, screen_touch, event)

我测试了它。它100%有效。

更多信息:
http://www.coronalabs.com/blog/2012/08/28/how-external-modules-work-in-corona/
http://www.coronalabs.com/blog/2011/09/05/a-better-approach-to-external-modules/
http://developer.coronalabs.com/content/modules
http://www.coronalabs.com/blog/2011/07/06/using-external-modules-in-corona/