跳至正文

CocosCreator开发笔记(12)-如何处理键盘事件

Cocos Creator的 cc.Node 有一套完整的事件监听和分发机制。在这套机制之上,引擎提供了一些基础的节点相关的系统事件。

Cocos Creator支持的系统事件包含鼠标、触摸、键盘、重力传感等四种,其中鼠标和触摸事件是被直接触发在相关节点上的,所以称为节点系统事件。与之对应的,键盘和重力传感事件被称为全局系统事件

本文主要讲述如何处理全局系统中的键盘事件。过程非常简单,只要注册该事件类型,并编写相应的处理函数即可,如下:

在 node 节点的 onLoad 中注册键盘事件响应

onLoad () {
    cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
    cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
},

在 node 节点的 onDestroy 中注销键盘事件响应

onDestroy () {
        cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
        cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
},

处理按键按下事件

onKeyDown (event) {
        switch(event.keyCode) {
            case cc.KEY.ctrl:
                cc.log('turn down ctrl');
                ....
                break;
            case cc.KEY.z:
                cc.log('turn down z');
                ....
                break;
        }
},

处理按键释放事件

onKeyUp (event) {
        switch(event.keyCode) {
            case cc.KEY.ctrl:
                cc.log('turn up ctrl');
                ....
                break;
            case cc.KEY.z:
                cc.log('turn up z');
                ....
                break;
        }
},

最后,附上 Cocos Creator 中定义的键盘按键的索引列表。(索引对应的具体键位请参照官方文档:http://docs.cocos.com/creator/api/zh/enums/KEY.html)

索引

  • none
  • back
  • menu
  • backspace
  • tab
  • enter
  • shift
  • ctrl
  • alt
  • pause
  • capslock
  • escape
  • space
  • pageup
  • pagedown
  • end
  • home
  • left
  • up
  • right
  • down
  • select
  • insert
  • Delete
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • num0
  • num1
  • num2
  • num3
  • num4
  • num5
  • num6
  • num7
  • num8
  • num9
  • *
  • +
  • -
  • numdel
  • /
  • f1
  • f2
  • f3
  • f4
  • f5
  • f6
  • f7
  • f8
  • f9
  • f10
  • f11
  • f12
  • numlock
  • scrolllock
  • ;
  • semicolon
  • equal
  • =
  • ,
  • comma
  • dash
  • .
  • period
  • forwardslash
  • grave
  • [
  • openbracket
  • backslash
  • ]
  • closebracket
  • quote
  • dpadLeft
  • dpadRight
  • dpadUp
  • dpadDown
  • dpadCenter
标签:

发表回复

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