cocos添加节点事件的3种方式

本文详细介绍了在Cocos中通过检查器和脚本为Button节点添加事件,包括使用内置检查器绑定、代码中手动添加事件以及自定义事件数据的方法。
摘要由CSDN通过智能技术生成

我们以button为例来说明一下cocos怎样为节点添加事件:

直接通过cocos熟悉检查器绑定

cocos绑定事件

添加事件脚本

import { _decorator, Component, Node, input, Input, Button, EventKeyboard } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('Attack')
export class Attack extends Component {

    attackBegin(event: Event, customEventData: string) {
        console.log(event);
        console.log(customEventData);
        console.log("攻击选中");
    }
}

点击事件Event的类型是:EventTouch(手机、浏览器手机模式)或者EventMouse(电脑)

这样绑定,可以捕获到单击和双击事件,双击事件会被当场2次单击。

cocos绑定事件结果

cocos中绑定Button节点、代码组件中为Button节点添加事件

import { _decorator, Component, Node, input, Input, Button, EventKeyboard } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('Attack')
export class Attack extends Component {

    @property(Button)
    button: Button | null = null;
    
    onLoad () {
        this.button.node.on(Button.EventType.CLICK, this.attackBegin, this);
    }

    attackBegin (button: Button) {
        console.log(button);
        console.log("攻击选中");
    }
}

这样绑定,也可以捕获到单击和双击事件,双击事件会被当场2次单击。

但是没有办法自定义事件数据,事件的参数也是button本身。
cocos绑定节点
绑定button方式结果

完全代码中实现绑定

import { _decorator, Component, Node, input, Input, Button, EventKeyboard } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('Attack')
export class Attack extends Component {

    onLoad() {
        let button = this.node.getComponent(Button);
        // 手动创建一个事件
        let handler = new Component.EventHandler();
        // 要响应事件的节点
        handler.target = this.node;
        // 脚本的名字,注意大小写,检查文件名和class名是否一直
        handler.component = "Attack";
        // 自定义事件数据
        handler.customEventData = "EventHandler customer data";
        // 事件回调方法
        handler.handler='attackBegin';
        // 将事件添加到点击事件列表中
        button.clickEvents.push(handler);
    }


    attackBegin(event: Event, customEventData: string) {
        console.log(event);
        console.log(customEventData);
        console.log("攻击选中");
    }
}

这种方式,就不需要在cocos中绑定了,只需要给button添加脚本组件即可。

其实,这种方式就是第1中的代码实现方式,手动在clickEvents添加了事件,而不是再cocos属性检查器中配置。
手动绑定脚本

手动绑定结果

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值