LuaScriptCore icon indicating copy to clipboard operation
LuaScriptCore copied to clipboard

关于callMethod调用

Open kingsollyu opened this issue 6 years ago • 1 comments

java中如何调用lua里对象的方法?lua代码如下

App={}

function App:onCreate ()
	print('Hello World');
end

java中去调用lua中App:onCreate方法,目前我尝试有下面两个方法,请问该如何去写?

// 这种方法可以调用,但是无法传递参数
_luaContext.evalScript("App.onCreate()")

// 想使用callMethod但是无法调用,没有任何输出
_luaContext.callMethod("App.onCreate", null)

kingsollyu avatar Mar 27 '18 03:03 kingsollyu

第一种方法是可行的,如果参数参数是基础类型,那么可以直接通过拼接脚本的形式来传递参数,如果是要传递原生对象则此方式行不通。可以调整为下面方式:

LuaValue obj = _luaContext.evalScript("App");
LuaFunction func = _luaContext.evalScript("App.onCreate").toFunction();
func.invoke(new LuaValue[]{obj, new LuaValue(1024)});

vimfung avatar Mar 27 '18 04:03 vimfung