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();				
			}
		});
	}

这样就大功告成!

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 很喜欢的一个男生

    很喜欢的一个男生   呵呵,从《加油!金顺》开始就很喜欢他,不知道为什么。看到他就想到阳光。很长时间都没有象这样喜欢一个人。      周末了。贴一些他的照片!!!…

  • java多线程–同步锁、

    java多线程–同步锁、同步代码块:语法:synchronized(同步锁){     需要同步操作的代码}—————————————————同步锁:为了保证每个线程都能正常执行原子操作,Java引入了线程同步机制.同步监听对象/同步锁/同步监听器/互斥锁:对象的同步锁只是一个概念,可以想象为在对象上标记了一个锁….

  • Win10总是开机黑屏?显卡驱动安装失败-驱动人生解决方案

    Win10总是开机黑屏?显卡驱动安装失败-驱动人生解决方案驱动人生了解到,自从win10系统发布以来,越来越多的用户都将系统给换成win10系统了。但是面对的用户基数大,系统难免会有不完善的地方。相信很多用户在使用过程中都会因为win10的各种毛病而被坑过,比如电脑开机就出现黑屏2分钟的问题。正常情况下,win10系统应该是开机后就可以显示的,不会出现需要黑屏2分钟左右的时间。这到底是哪里出现问题了呢?  经过驱动人生官方运维人员的检查发现,这个是因为Win10系统中潜在的一些bug导致的,如果大家的显卡有问题或者显卡驱动有问题,在开机后就会黑屏1-3分钟

  • java 反射机制原理 简述[通俗易懂]

    java 反射机制原理 简述[通俗易懂]什么是反射机制?1、在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。2、对于任意一个对象,都能够调用它的任何方法和属性。这种动态获取信息以及动态调用对象的方法的功能称为JAVA的反射。反射的作用1、在运行时判断任意一个对象所属的类;2、在运行时构造任意一个类的对象;3、在运行时判断任意一个类所具有的成员变量和方法;4、在运行时调用任意一个对象的方法;生成动态代理。反射的…

  • tomcat启动出现异常 Error filterStart

    tomcat启动出现异常 Error filterStarttomcat启动出现异常ErrorfilterStart

  • java中jbpm工作流_activiti工作流教程

    java中jbpm工作流_activiti工作流教程JBOSSjBPM 工作流管理系统简介jBPM,全称是JavaBusinessProcessManagement,是一种基于J2EE的轻量级工作流管理系统。jBPM是公开源代码项目,它使用要遵循 ApacheLicense。jBPM在2004年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBossj

发表回复

您的电子邮箱地址不会被公开。

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