1

touch_input.lua で別の関数を呼び出したい block_basic.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) は常に nil で、理由がわかりません

touch_input.lua には、次のようなものがあります。

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

などなど

なぜゼロなのですか?なぜ私はそれを呼び出すことができないのですか?

4

2 に答える 2

1

で何を返すかは示していませんtouch_input.luaが、スクリプトの最初の 2 行が機能すると予想される場合は、次のようにする必要があります。

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

2 行目で実行時エラーが発生しないため、既にテーブルを返している可能性がありますがonScreenTouch、そのテーブルのフィールドが関数を指していることを確認する必要がありonScreenTouchます。

于 2013-06-05T16:31:53.387 に答える