我有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
等。等
为什么没有?为什么我不能打电话给它?
答案 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/