大佬教程收集整理的这篇文章主要介绍了quick-cocos2d-x 学习系列之十lua调用JAVA,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
quick-cocos2d-x 学习系列之十lua调用JAVA
lua脚本虽然强大,但是如果不能灵活方便的调用JAVA难免会显得不足。很多编程语言本身都会涉及到和其他语言的交互,记得很久之前在用MATLAB时候就涉及C与MATLAB中m语言的交互,现在工作也经常设计SHelL、PYTHON、C等交杂。我们就来瞎看LUA与JAVA之间的调用。
代码如下:
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
local javaClassName = "org/cocos2dx/lua/AppActivity"
local javaMethodName = "showAlertDialog"
local javaParams = {
"How are you ?",
"I'm great !",
function(event)
local str = "Java method callBACk value is [" .. event .. "]"
btn:setButtonLabel(cc.ui.UILabel.new({text= str,size = 32}))
end
}
local javaMethodSig = "(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)
local str = "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
elseif event.key == "menu" then
--print("menu")
end
end)
创建一个BUTTON,按下的时候根据是否在Android平台运行来执行。
如果是在AndroiD平台,设置调用java类的文件路径,调用的方法,调用的方法参数,
(此外设置键盘输入触摸ENABLE,并创建一个触摸监听。判断输入字母,如果是BACk则退出程序。不过此段代码并无作用)
当在真机上运行的时候,按按下触摸屏,会弹出一个对话框,是由org/cocos2dx/lua/AppActivity.java文件中的函数实现的。
完毕。
最关键的调用函数是luaj .callStaticMethod。
以上是大佬教程为你收集整理的quick-cocos2d-x 学习系列之十lua调用JAVA全部内容,希望文章能够帮你解决quick-cocos2d-x 学习系列之十lua调用JAVA所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。