quick-cocos2d-x 学习系列之十lua调用JAVA
来源:互联网 发布:手机同声翻译软件 编辑:程序博客网 时间:2024/06/02 23:57
quick-cocos2d-x 学习系列之十lua调用JAVA
lua脚本虽然强大,但是如果不能灵活方便的调用JAVA难免会显得不足。很多编程语言本身都会涉及到和其他语言的交互,记得很久之前在用MATLAB时候就涉及C与MATLAB中m语言的交互,现在工作也经常设计SHELL、PYTHON、C等交杂。我们就来瞎看LUA与JAVA之间的调用。
1. 代码
代码如下:
local btn
btn = cc.ui.UIPushButton.new()
:setButtonLabel(cc.ui.UILabel.new({text="call Java - showAlertDialog()", size = 64}))
:onButtonClicked(function()
if device.platform ~="android" then
-- print("please run this on android device")
btn:setButtonLabel(cc.ui.UILabel.new({text="please run this on androiddevice", size = 32}))
return
end
-- call Java method
localjavaClassName = "org/cocos2dx/lua/AppActivity"
localjavaMethodName = "showAlertDialog"
localjavaParams = {
"How are you ?",
"I'm great !",
function(event)
localstr = "Java method callback value is [" ..event .. "]"
btn:setButtonLabel(cc.ui.UILabel.new({text=str, size = 32}))
end
}
localjavaMethodSig = "(Ljava/lang/String;Ljava/lang/String;I)V"
luaj.callStaticMethod(javaClassName,javaMethodName, javaParams,javaMethodSig)
end)
:align(display.CENTER, display.cx,display.cy)
:addTo(self)
btn:setKeypadEnabled(true)
btn:addNodeEventListener(cc.KEYPAD_EVENT,function (event)
dump(event)
localstr = "event.keyis [ " ..event.key .. " ]"
btn:setButtonLabel(cc.ui.UILabel.new({text=str, size = 32}))
if event.key == "back" then
--print("back")
cc.Director:getInstance():endToLua()
if device.platform =="windows" or device.platform =="mac" then
os.exit()
end
elseifevent.key == "menu"then
--print("menu")
end
end)
2. 代码解释
创建一个BUTTON,按下的时候根据是否在android平台运行来执行。
如果是在ANDROID平台,设置调用java类的文件路径,调用的方法,调用的方法参数,
(此外设置键盘输入触摸ENABLE,并创建一个触摸监听。判断输入字母,如果是back则退出程序。不过此段代码并无作用)
当在真机上运行的时候,按按下触摸屏,会弹出一个对话框,是由org/cocos2dx/lua/AppActivity.java文件中的函数实现的。
完毕。
最关键的调用函数是luaj .callStaticMethod。
- quick-cocos2d-x 学习系列之十lua调用JAVA
- quick-cocos2d-x中Lua调用JAVA
- quick-cocos2d-x 学习系列之二样例2048游戏学习
- quick-cocos2d-x 学习系列之五 ccsloader学习
- lua QUICK-COCOS2D-X
- quick-cocos2d-x 学习系列之三Armature
- quick-cocos2d-x 学习系列之四 benchmark
- quick-cocos2d-x 学习系列之六 CoinFlip
- quick-cocos2d-x 学习系列之七 drag
- quick-cocos2d-x 学习系列之八edit
- quick-cocos2d-x 学习系列之九filter
- quick-cocos2d-x 学习系列之十一mvc例子
- quick-cocos2d-x 学习系列之十二 关于websocket
- quick-cocos2d-x 学习系列之十三 触摸
- quick-cocos2d-x 学习系列之十四 测试用例
- quick-cocos2d-x 学习系列之十五 状态机
- quick-cocos2d-x 学习系列之十六 塔防完结
- [quick-cocos2d-x lua学习] 框架详细介绍(一)
- MFC基础知识(一)——文档视图类指针获取、逻辑与设备坐标以及OnDraw
- mysql乱码解决方案
- vector转化为Mat矩阵
- 测试页
- 利用空位图对象实现连贯动画显示
- quick-cocos2d-x 学习系列之十lua调用JAVA
- 开发与测试工作区别之心得一
- 众包完成的 Nature 大作:世界上作者最多的文章
- 性能调优
- 表视图随记
- Hibernate
- 编程学习网站 收集于网络
- Apache与Nginx的优缺点比较
- putty + vpn利用ssh tunnel访问google