Cocos2d-JS键盘事件

Cocos2d-JS中的键盘事件与触摸事件不同,它没有空间方面信息。

键盘事件不仅能够响应键盘,还能够响应设备的菜单。


键盘事件是EventKeyboard,相应的键盘事件监听器(cc.EventListener.KEYBOARD),键盘事件响应属性:
onKeyPressed。当键按下时回调该属性所指定函数。


onKeyReleased。

当键抬起时回调该属性所指定函数。
使用键盘事件处理的代码片段例如以下:

onEnter: function () {
    	this._super();
    	cc.log("HelloWorld onEnter");
    
    	cc.eventManager.addListener({	①
    	event: cc.EventListener.KEYBOARD, 	②
    	onKeyPressed:  function(keyCode, event){ 	③
    	cc.log("Key with keycode " + keyCode + " pressed");
    	},
    	onKeyReleased: function(keyCode, event){ 	④
    	cc.log("Key with keycode " + keyCode + " released");
    	}
    	}, this);
    },
    onExit: function () {
    	this._super();
    	cc.log("HelloWorld onExit");
    	cc.eventManager.removeListeners(cc.EventListener.KEYBOARD);	⑤
    }
上述代码第①行cc.eventManager.addListener是通过快捷方式注冊事件监听器对象。第②行代码是设置键盘事件cc.EventListener.KEYBOARD。第③行代码是设置键盘按下属性onKeyPressed,当中的參数keyCode是按下的键编号。第④行代码是设置键盘抬起属性onKeyReleased。


上述onExit()函数是退出层时候回调。我们在代码第⑤行注销全部键盘事件的监听。


我们能够使用Cocos Code IDE和WebStorm工具进行測试。输出的结果例如以下:

JS: Key with keycode 124 released
JS: Key with keycode 124 pressed
JS: Key with keycode 139 pressed
JS: Key with keycode 139 released
JS: Key with keycode 124 released
JS: Key with keycode 139 pressed
JS: Key with keycode 124 pressed
JS: Key with keycode 139 released
JS: Key with keycode 124 released
JS: Key with keycode 139 pressed
JS: Key with keycode 124 pressed
JS: Key with keycode 139 released
JS: Key with keycode 124 released



很多其它内容请关注最新Cocos图书《Cocos2d-x实战:JS卷——Cocos2d-JS开发
本书交流讨论站点:http://www.cocoagame.net
欢迎增加Cocos2d-x技术讨论群:257760386
很多其它精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com

《Cocos2d-x实战 JS卷》现已上线。各大商店均已开售:

京东:http://item.jd.com/11659698.html

欢迎关注智捷iOS课堂微信公共平台,了解最新技术文章、图书、教程信息

原文地址:https://www.cnblogs.com/clnchanpin/p/6845727.html