quick-cocos2d-x android返回键监听并实现原生退出对话框

quick-cocos2d-x android返回键监听并实现原生退出对话框

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

这两天最终闲了一下,就顺手又把quick捡起来又学了学,一直都认为quick比cocos2dx那套lua绑定要方便很多,今天试了下android返回键的监听,还是挺好弄的,所以就有了这篇。

首先说明一下使用的quick版本号——2.2.5。

直接上代码

function MainScene:addBackEvent()
    if device.platform == "android" then
        self.touchLayer = display.newLayer()
        self.touchLayer:addNodeEventListener(cc.KEYPAD_EVENT, function(event)
            if event.key == "back" then  
                --CCDirector:sharedDirector():endToLua()
                local javaClassName = "com/cocos2dx/testgame/Testgame"
                local javaMethodName = "exit"
                luaj.callStaticMethod(javaClassName, javaMethodName)
            end
        end)
        self.touchLayer:setKeypadEnabled(true)
        self:addChild(self.touchLayer)
    end 
end

比較好理解,创建一个层,为该层加入�一个事件监听,这个事件监听的类型是keypad,假设key的值是back那么就运行里面的代码了,假设不须要显示android原生的对话框,仅仅要关闭程序,仅仅须要运行上面代码中凝视的部分就能够了。

2.2.3之后的版本号在加入�事件监听上与之前有所不同,这里须要注意下。

当然做软件嘛,好歹有个温馨提示,防止用户无意点到退出游戏就不友好了,所以这里调用了一下android原生对话框来显示。quick提供了一个luajavabridge这个sample,能够非常轻松调用到android中的静态函数。

这里还是贴一下android中调用的函数代码

public static void exit() {
		instance.runOnUiThread(new Runnable() {			
			@Override
			public void run() {
				Builder builder = new Builder(instance);
				builder.setTitle("提示");
				builder.setMessage("确定退出吗");
				builder.setIcon(android.R.drawable.ic_dialog_info);
				builder.setPositiveButton("确定", new OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						System.exit(0);						
					}
				});
				builder.setNegativeButton("取消", new OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						dialog.dismiss();					}
				}).show();				
			}
		});
	}

这样就大功告成!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118682.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【python】分苹果

    【python】分苹果问题:一堆苹果,5个人。第一个人将苹果丢掉一个,然后平均分成5份后拿走其中的一份;第二个人将剩余的苹果丢掉一个,然后再平均分成5份后拿走其中的一份,依次类推…第五个人在第四个人拿走剩下的那部分苹果中同样丢掉一个,然后平均分成5份后拿走其中的一份。求问最少的苹果数。depth=0defmatch(num):””””””globaldepth…

    2022年8月31日
    0
  • 某音信息案例_关于信息泄露的案例

    某音信息案例_关于信息泄露的案例抓包。抓到了一个share_url我访问过去看了下,https://www.iesdouyin.com/share/user/102064772608有数据的。那就拿数据。然后发现它的数字做了字符集映射。搞他。下载.ttf的文件,s3a.bytecdn.cn/ies/resource/falcon/douyin_falcon/static/font/iconfont_da2e2…

    2022年9月26日
    0
  • windows+mysql集群搭建-三分钟搞定集群

    windows+mysql集群搭建-三分钟搞定集群

    2022年2月22日
    30
  • Spring Boot第七章-Spring Boot Web配置-Tomcat配置

    Spring Boot第七章-Spring Boot Web配置-Tomcat配置

    2021年5月16日
    130
  • getParameterValues中文乱码[通俗易懂]

    getParameterValues中文乱码[通俗易懂]如果想获得一个元素的value情况时:可以设置为:Stringstr=newString(request.getParameter(“interest”).getBytes(“iso-8859-1”),“utf-8”);如果你获得的是得到复选框中选中的元素value值(有多个),只用在Servlet文件里添加request.setCharacterEncoding(“UTF-8”)…

    2022年7月22日
    18
  • 各种数据库默认端口总结

    各种数据库默认端口总结关系型数据库一 :Oracle驱动:oracle.jdbc.driver.OracleDriverURL:jdbc:oracle:thin:@<machine_name><:port>:dbname注:machine_name:数据库所在的机器的名称,如果是本机则是127.0.0.1或者是localhost,如果是远程连接,则是远程的IP地址;port:端口号,默…

    2022年6月13日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号