cocos creator 基础一文通(七)--button

本文详细介绍了Cocos Creator中的Button组件,包括如何添加按钮、按钮的属性如transition模式,以及如何处理按钮响应事件。还讨论了cc.Button类型、添加响应事件的方法、代码中操作Button的方式,以及Component.EventHandler的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. button按钮组件

1.添加按钮的方法

①. 直接创建button组件

②. 组件上创建button组件

二. button按钮属性

v2-31365a756394e5e9107a8cb13a3a9aee_b.jpg

其中,transition 属性有一下集中模式

  • None : 无
  • COLOR: 颜色变换
  • SPRITE: 精灵贴图变换
  • SCALE: 大小变换

v2-37b1c1b9bdef23e582eff44d22159553_b.jpg

其中:

①. 颜色变换 和 贴图变换类似 都有 按下 悬停 禁用 状态,只不过一个变换颜色一个变换贴图

duration 是变换动画过渡时长

v2-2d1dc516bf3b999c8bf29a1e7f7bbd46_b.jpg

②. 大小变换 只有过渡和大小 两个属性

v2-5c843a97b76d0925ea65f51c11094780_b.jpg

三. 按钮响应事件

调用时,找: 节点→脚本组件→代码函数

//注意:为大小为0的节点挂载button组件会挂载失败!!!!(小心,空节点挂事件易错)

1.添加响应事件接口

v2-c3d67edd04b8d3ebab3af21bc3ad9c97_b.jpg

2. 选择节点(响应事件脚本挂载那个节点上就选哪个)

3. 然后就能在节点上找到脚本,在脚本中找到对应的写好的响应函数

v2-a68354d678d96bd3e922e966c87bceed_b.jpg

4. 设置传递信息(字符串) //可能好多按钮调这个响应函数,所以传递一个信息来区别和沟通

v2-01503ffd32bb704bafbb9b4e4ea8112b_b.jpg

5. 程序里接收按钮事件和传递信息

v2-0ea7cb55d104b3e21701e013af470985_b.jpg

v2-7394916b13f9128c1c492a177cffa4db_b.jpg

四. cc.Button类型

v2-1ab8789b1859a2765346b3dc18dc4d15_b.jpg

v2-b391d191880451bc354a44d210d6b8f2_b.jpg

v2-070e3c258b3c2b34e56efe2186df1713_b.jpg

v2-2164ce6982e3e3e2651ce8be971351ba_b.png

五. 代码中使用cc.Button

1. 获取button

①.设置进属性面板

v2-f35ddfeb5ac2f891f5fa364b8ff8c829_b.png

②.通过查找子节点,再获取组件

v2-6662a288027974f6de5f8b066952edfd_b.png

2. 代码添加button组件 再添加响应函数

添加组件addComponent即可

加入响应函数:实际上是往 Button对象的 clickEvents 属性(实际为一个列表,里面元素为Component.EventHandler类型)中添加元素

                //添加button组件
        this.get_a_button3=this.node.getChildByName("red_button").addComponent(cc.Button);
        //创建EventHandler类对象
        var eventHandler = new cc.Component.EventHandler();
        eventHandler.target = this.node; //节点
        eventHandler.component = "game_scence1";
        eventHandler.handler = "on_red_button_click";
        eventHandler.customEventData = "haha red!777777";
        // 把EventHandler类实例对象加入clickEvent列表中;
        this.get_a_button3.clickEvents.push(eventHandler);
        // 或者可以写:this.get_a_button3.clickEvents=[eventHandler] 如果后续有其他事件再往里面加

      

3. 代码触发按钮事件

emit触发

                this.scheduleOnce(function(){
            var click_events=this.get_a_button3.clickEvents;
            for(var i=0;i<click_events.length;i++){      //因为不知道按钮有几个事件,所以遍历了一下
                var component_handle=click_events[i];
                component_handle.emit(["","red_button7777"]);
            }
        },3);
        //如果能得到具体的eventHandler 也可以直接发射.
        eventHandler.emit(["","lolololo7777"]);

      

六. Component.EventHandler 类型

创建该类型实例

v2-fa048cad8923171e8ad42e587ca3d52e_b.jpg

v2-c1fad1fa8709ba3576fac21dbf04eabe_b.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值