ビットはすべてこれで混乱します。ここに私がやろうとしていることがあります!予想されるように、私がアクセスし、別のファイルで関数をLuaのパラメータとして渡すには?
block_basic_DEF =
{
image = "button.png",
name = "basic block",
obj_table = this_obj_table.common_objects_table,
startup = function() init(), <----- This is the problem
}
: は、このようにDEFを持っている私は、このようなことをinit()
関数のアドレスを渡したいというblock_basic_DEF
で
function spawn(params)
local obj = display.newImage(params.image)
-- etc.
私の産卵でI
params.startup()
--ieのようにすることができます実際に元のinit関数を呼び出す
私はこれがポインターへのポインタだったCの背景ですが、それは明らかにOOPの世界で悪い言語です! :-))
乾杯
"*は、このようにDEFを持っている*" それは "DEF" ではありません。ルアには「定義」はありません。それは* table *です。これは* value *です。機能に似ています。 –
'params.startup()'は実際には 'params'で参照される値をテーブルとして扱い、文字列' startup'でインデックスしてその値を得ます(ドット演算子)。次に、関数として値を呼び出します(括弧の演算子)。その関数は 'init'によって参照される値を関数として呼び出します。 –