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)
上一篇 2021年12月2日 下午8:00
下一篇 2021年12月2日 下午9:00


相关推荐

  • md5使用方法 java_MD5在java中的使用

    md5使用方法 java_MD5在java中的使用MD5 是什么 MD5 是 message digestalgori 信息 摘要算法 的缩写 被广泛用于加密和解密技术上 它可以说是文件的 数字指纹 任何一个文件 无论是可执行程序 图像文件 临时文件或者其他任何类型的文件 也不管它体积多大 都有且只有一个独一无二的 MD5 信息值 并且如果这个文件被修改过 它的 MD5 值也将随之改变 因此 我们可以通过对比同一文件的 MD5 值 来校验这个文件是否

    2025年8月14日
    7
  • 李嘉诚储藏财富的背后隐藏着什么奥秘?

    李嘉诚储藏财富的背后隐藏着什么奥秘?

    2022年1月17日
    59
  • OpenClaw(原Clawdbot/Moltbot)本地部署快速指南

    OpenClaw(原Clawdbot/Moltbot)本地部署快速指南

    2026年3月13日
    2
  • 【大模型 OCR】GLM-OCR 使用教程:从入门到部署

    【大模型 OCR】GLM-OCR 使用教程:从入门到部署

    2026年3月12日
    2
  • 基于51单片机控制步进电机正反转

    基于51单片机控制步进电机正反转基于51单片机控制步进电机正反转此次采用uln2003模块来链接步进电机;##步进电机工作原理步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。因此我们可以控制单片机I/O口的电平来控制步进电机,此次设计中采用四相单拍工作方式,在这种工作方式下,A、

    2022年5月31日
    34
  • 代理模式proxy_反向代理是什么

    代理模式proxy_反向代理是什么代理模式 Proxy动机模式定义实例结构要点总结笔记动机在面向对象系统中,由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程额外的访问等),直接访问会给使用者,或者系统结构带来很多麻烦.如何在不是去透明操作对象的同时来管理/控制这些对象特有的复杂性?增加一层间接曾是软件开发中常见的解决方式模式定义为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问实例朴素客户端要去使用process 但是process周围需要做很多事情class ISubject{p

    2022年8月9日
    9

发表回复

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

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