quick-cocos2d-x游戏开发【12】——硬件按键事件
来源:互联网 发布:淘宝开放平台 top 编辑:程序博客网 时间:2024/06/07 06:03
在quick中,对于按键事件也进行了重新封装,和node的触摸事件一样,也是通过addNodeEventListener来实现。所谓按键事件,主要是针对于android设备中的返回键“back”和菜单键“menu”的响应,在前面的一篇博文中我也简单提过一次,不过咱们还是系统性的来学习一下。
首先清楚预定义的层事件有两个,
- cc.ACCELERATE_EVENT - 重力感应事件
- cc.KEYPAD_EVENT - 硬件按键事件
- cc.NODE_EVENT - enter, exit 等事件
- cc.NODE_ENTER_FRAME_EVENT - 帧事件
- cc.NODE_TOUCH_EVENT - 触摸事件
- cc.NODE_TOUCH_CAPTURE_EVENT - 捕获触摸事件
要实现一个按键响应事件主要就两步,
1.打开键盘功能setKeypadEnabled(true)
2.添加事件监听addNodeEventListener
例如这样写,
- local layer = display.newLayer()
- self:addChild(layer)
- layer:setKeypadEnabled(true)
- layer:addNodeEventListener(cc.KEYPAD_EVENT, function (event)
- --do things
- end)
回调函数中event参数只有一个字段“key”,可以判断获取key是back还是menu,
这样一来,按键事件就算掌握了,使用device类提供的对话框咱们来测试下,当然这个最好是真机测试了,
- function MyScene:ctor()
- local layer = display.newLayer()
- self:addChild(layer)
- layer:setKeypadEnabled(true)
- layer:addNodeEventListener(cc.KEYPAD_EVENT, function (event)
- if event.key == "back" then
- print("back")
- device.showAlert("Confirm Exit", "Are you sure exit game ?", {"YES", "NO"}, function (event)
- if event.buttonIndex == 1 then
- CCDirector:sharedDirector():endToLua()
- else
- device.cancelAlert()
- end
- end)
- elseif event.key == "menu" then
- print("menu")
- end
- end)
- end
0 0
- quick-cocos2d-x游戏开发【12】——硬件按键事件
- quick-cocos2d-x游戏开发【12】——硬件按键事件
- quick-cocos2d-x游戏开发【13】——节点生命周期事件,帧事件等其他事件
- quick-cocos2d-x游戏开发【13】——节点生命周期事件,帧事件等其他事件
- quick-cocos2d-x游戏开发【10】——触摸捕获事件 cc.NODE_TOUCH_CAPTURE_EVENT
- quick-cocos2d-x游戏开发【10】——触摸捕获事件 cc.NODE_TOUCH_CAPTURE_EVENT
- quick-cocos2d-x游戏开发【4】——添加文本
- quick-cocos2d-x游戏开发【5】——创建菜单
- quick-cocos2d-x游戏开发【7】——scheduler 定时器
- quick-cocos2d-x游戏开发【9】——单点触摸
- quick-cocos2d-x游戏开发【11】——多点触摸
- quick-cocos2d-x游戏开发【14】——StateMachine状态机
- quick-cocos2d-x游戏开发——StateMachine状态机
- quick-cocos2d-x游戏开发【4】——添加文本
- quick-cocos2d-x游戏开发【5】——创建菜单
- quick-cocos2d-x游戏开发【7】——scheduler 定时器
- quick-cocos2d-x游戏开发【9】——单点触摸
- quick-cocos2d-x游戏开发【11】——多点触摸
- loadrunner执行时passed transactions 为0问题
- HDU2594 Simpsons’ Hidden Talents【KMP】
- com组件和一般dll的区别
- JS调用Android里面的方法,Android调用JS里面的方法
- .net连接数据源以及dropdownlist的数据绑定
- quick-cocos2d-x游戏开发【12】——硬件按键事件
- Android性能调优
- IOS改变导航条上标题的属性(包括字体,颜色,等)
- MediaScanner添加对多种音频文件ID3信息的保存支持
- Chrome developer tool介绍 (javascript调试)
- HDU 1298 T9
- linux之cut用法
- Linux环境下Oracle数据泵(expdp)备份报ORA-39006: internal error
- quick-cocos2d-x游戏开发【13】——节点生命周期事件,帧事件等其他事件