全局系统事件

本篇教程,我们将介绍 Cocos Creator 的全局系统事件。 cc.systemEvent 来统一派发,目前支持了以下几种事件:

  • - 节点系统事件 注意:目前已经不建议直接使用 cc.eventManager 来注册任何事件,cc.eventManager 的用法也不保证持续性,有可能随时被修改

    如何定义输入事件

    cc.systemEvent.on(type, callback, target) 注册的。 type 类型有:
  1. 3.

    键盘事件

  • cc.SystemEvent.EventType.KEY_DOWNcc.SystemEvent.EventType.KEY_UP
  • -
    • API 传送门
  • API 传送门
    1. cc.Class({ extends: cc.Component, onLoad: function () { // add key down and key up event cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this); cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this); }, onDestroy () { cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this); cc.systemEvent.off(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this); }, onKeyDown: function (event) { switch(event.keyCode) { case cc.KEY.a: console.log('Press a key'); break; } }, onKeyUp: function (event) { switch(event.keyCode) { case cc.KEY.a: console.log('release a key'); break; } }});

    设备重力传感事件

  • cc.SystemEvent.EventType.DEVICEMOTION
  • -
    • API 传送门
      1. cc.Class({ extends: cc.Component, onLoad () { // open Accelerometer cc.inputManager.setAccelerometerEnabled(true); cc.systemEvent.on(cc.SystemEvent.EventType.DEVICEMOTION, this.onDeviceMotionEvent, this); }, onDestroy () { cc.systemEvent.off(cc.SystemEvent.EventType.DEVICEMOTION, this.onDeviceMotionEvent, this); }, onDeviceMotionEvent (event) { cc.log(event.acc.x + " " + event.acc.y); },});
      官方范例 cases03_gameplay/01_player_control 目录下的完整范例(这里包含了,键盘,重力感应,单点触摸,多点触摸的范例)。