转自:https://blog.csdn.net/foupwang/article/details/80474072node
Cocos Creator的 cc.Node 有一套完整的事件监听和分发机制。在这套机制之上,引擎提供了一些基础的节点相关的系统事件。函数
Cocos Creator支持的系统事件包含鼠标、触摸、键盘、重力传感等四种,其中鼠标和触摸事件是被直接触发在相关节点上的,因此称为节点系统事件。与之对应的,键盘和重力传感事件被称为全局系统事件。this
本文主要讲述如何处理节点系统中的鼠标事件。过程很是简单,只要注册该事件类型,并编写相应的处理函数便可,以下:spa
this.node.on(cc.Node.EventType.MOUSE_DOWN, this.onMouseDown, this);
this.node.on(cc.Node.EventType.MOUSE_UP, this.onMouseUp, this
);
this.node.on(cc.Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
},
this.node.off(cc.Node.EventType.MOUSE_DOWN, this.onMouseDown, this);
this.node.off(cc.Node.EventType.MOUSE_UP, this.onMouseUp, this);
this.node.off(cc.Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
},
onMouseDown: function(event) { let mouseType = event.getButton(); if (mouseType === cc.Event.EventMouse.BUTTON_LEFT) { // 鼠标左键按下 let mousePoint = event.getLocation(); let localPoint = this.node.convertToNodeSpace(mousePoint); ... } else if (mouseType === cc.Event.EventMouse.BUTTON_MIDDLE) { // 鼠标中键按下 ... } else if (mouseType === cc.Event.EventMouse.BUTTON_RIGHT) { // 鼠标右键按下 ... } },
onMouseUp: function(event) { let mouseType = event.getButton(); if (mouseType === cc.Event.EventMouse.BUTTON_LEFT) { // 鼠标左键释放 let mousePoint = event.getLocation(); let localPoint = this.node.convertToNodeSpace(mousePoint); ... } else if (mouseType === cc.Event.EventMouse.BUTTON_MIDDLE) { // 鼠标中键释放 ... } else if (mouseType === cc.Event.EventMouse.BUTTON_RIGHT) { // 鼠标右键释放 ... } },
onMouseWheel: function(event) { let scrollY = event.getScrollY(); ... },