cocos creator按钮事件注册

转自:https://blog.csdn.net/foupwang/article/details/80474072

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

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

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

在 node 节点的 onLoad 中注册鼠标事件响应onLoad () { 

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);
},

 

在 node 节点的 onDestroy 中注销鼠标事件响应onDestroy () { 

1
2
<em id="__mceDel">this.node.off(cc.Node.EventType.MOUSE_DOWN, this.onMouseDown, this); <br>this.node.off(cc.Node.EventType.MOUSE_UP, this.onMouseUp, this);<br> this.node.off(cc.Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);<br>},
</em>

  

处理鼠标按下事件

复制代码
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();
    ...
},

 

posted @   游戏鼻祖  阅读(2804)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示