cocos2d-x学习笔记(十三)lua与java通过LuaJavaBridge交互
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了cocos2d-x学习笔记(十三)lua与java通过LuaJavaBridge交互,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1854字,纯文字阅读大概需要3分钟。
内容图文
![cocos2d-x学习笔记(十三)lua与java通过LuaJavaBridge交互](/upload/InfoBanner/zyjiaocheng/845/3cb83a982bb74f379b02757bc5ca39b7.jpg)
cocos2d-x接入支付等sdk时,如果逻辑写在lua端,经常会用到lua与java的交互,下面通过一个实例来实现lua与java的交互过程
一、lua端
lua中使用luaj.callStaticMethod调用java静态方法
12345678910111213 | local function onCallBack(msg) ???? --回调处理 ???? if msg?==? "success" ???????? -- ???? end end local function callJavaCallBackLua() ???? local luaj?=?require? "cocos.cocos2d.luaj" ???? local className?=? "org/cocos2dx/cpp/AppActivity" ???? local args?=?{? "test" ,?onCallBack?} ???? local sigs?=? "(Ljava/lang/String;I)V" ???? local ok?=?luaj.callStaticMethod(className, "callJavaMethod" ,args,sigs) end |
以上实现通过lua端调用java的静态方法callJavaMethod,并传入2个参数,一个字符串“test”和一个回调函数onCallBack
二、java端
cocos2d-x提供了Cocos2dxLuaJavaBridge带有如下方法可以使用:
1234 | public static native int callLuaFunctionWithString( int luaFunctionId,?String?value);?? //?调用局部Lua-Function public static native int callLuaGlobalFunctionWithString(String?luaFunctionName,?String?value);? //?调用全局Lua-Function public static native int retainLuaFunction( int luaFunctionId);? //?retain一次Lua-Function public static native int releaseLuaFunction( int luaFunctionId);? //?release掉Lua-Function |
在这里我们使用调用局部Lua-Function callLuaFunctionWithString来做示例
在AppActivity.java合适位置中加入代码
1 | import?org.cocos2dx.lib.Cocos2dxLuaJavaBridge; |
1 | static int luaFuncCallback?=?0; |
1234 | public static void callJavaMethod( final String?test,? final int luaFunc){ ???? //Java中可以直接回调这个函数,也可以先保存下来这个注册的Lua局部函数,一般都是保存下来,等待启用SDK充值逻辑走完后再回调 ???? luaFuncCallback?=?luaFunc; } |
1234567 | mainActivity.runOnGLThread( new Runnable()?{ ???? @Override ???? public void run()?{ ???????? Cocos2dxLuaJavaBridge.callLuaFunctionWithString(luaFuncCallback,? "success" ); ???????? Cocos2dxLuaJavaBridge.releaseLuaFunction(luaFuncCallback); ???? } ???? }); |
转自:http://www.tengewang.cn/archives/237.html
内容总结
以上是互联网集市为您收集整理的cocos2d-x学习笔记(十三)lua与java通过LuaJavaBridge交互全部内容,希望文章能够帮你解决cocos2d-x学习笔记(十三)lua与java通过LuaJavaBridge交互所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。