LuaJ 3.0 を使用して Android アプリを作成しています。Java オブジェクトを特定の LuaClosure (スクリプト全体) にバインドするにはどうすればよいですか?
ルアコード:
local = state or nil
state.foo("some string")
Java コード:
Prototype prototype;
try{
InputStream stream = mContext.getResources().getAssets().open(LUA_ASSETS_DIRECTORY + "test.lua");
prototype = LuaC.compile(stream, "script");
} catch (IOException e) {
return false;
}
LuaClosure closure = new LuaClosure(prototype, mLuaGlobals);
// binding code
closure.call();
LuaJ 2.0 (ただし 3.0 ではありません) には LuaValue.setenv があり、ライブラリの作成とグローバルへのバインドについても知っています。