我的腳本註冊本身使用的Lua回調到模塊
require "cmodule"
index = 1
cmodule.RegisterSoftButtonDownCallback(index, "callbackFunc")
回調,其中callbackFunc是回調函數的名稱(字符串)。現在我把這個腳本到一個模塊中,但回調不叫了,我想是因爲回調函數是不是在cmodule的範圍。我該如何解決這個問題? (LUA新手)
cmodule是具有的Lua綁定的設備驅動器。
編輯:我的總部設在從下面BMitch答案完整的解決方案:
require "cmodule"
local modname = "myModule"
local M = {}
_G[modname] = M
package.loaded[modname] = M
local cmodule = cmodule
local _G = _G
setfenv(1,M)
function callbackFunc()
-- use module vars here
end
_G["myModule_callbackFunc"] = callbackFunc
index = 1
cmodule.RegisterSoftButtonDownCallback(index, "myModule_callbackFunc")
什麼是'cmodule'?這不是Lua 5.1的一部分。它從何而來?它是全局變量還是本地變量? –
cmodule是具有的Lua綁定的設備驅動器。我做了要求「cmodule」的腳本(裝載cmodule.dll)的開始。這不是我開發的。如果知道究竟是什麼,我可以嘗試聯繫作者很重要。 – Emile