1

我有 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

等等等等

为什么是零?为什么我不能调用它?

4

2 回答 2

1

您没有显示返回的内容touch_input.lua,但是如果您希望脚本的前两行能够正常工作,则它需要是这样的:

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

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

于 2013-06-05T16:31:53.387 回答
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-电晕内/

于 2013-06-05T21:03:50.060 回答