扩展Creator Button组件

Creator 拓展展Button组件 增加点击音效  默缩放。点击间隔。 往往游戏的按钮都会加上音效。而大部分通用的音效每次都代码添加是一件很繁琐的工作。 按钮的点击缩放效果等, 一般我们为了方便,提升开发效率会做成组件形式。

ButtonEx.js  这是对button组件业务层重写了一下。增加了点击音效

/*** 修改了缩放默认* Button 增加了音效* ZhuangZhuang*/const SOUND_TYPE = cc.Enum({NORMAL: 0,CLICK: 1,
});let ButtonEx = cc.Class({extends: cc.Button,   properties: { Sound:{default:SOUND_TYPE.CLICK,type:cc.Enum(SOUND_TYPE)}, zoomScale: {default: 0.9,tooltip: CC_DEV && 'i18n:COMPONENT.button.zoom_scale',override:true,}, //默认缩放比transition: {default: cc.Button.Transition.SCALE,tooltip: CC_DEV && 'i18n:COMPONENT.button.transition',type:  cc.Button.Transition,animatable: false,notify (oldValue) {this._updateTransition(oldValue);},formerlySerializedAs: 'transition', },  },start(){this.node.on(cc.Node.EventType.TOUCH_START, this.onButtonTouched, this);  }, onButtonTouched(){this._lockT = Date.now(); if(this.Sound == SOUND_TYPE.NORMAL) return;//todo 自己实现的通过点击AudioMgr.ins.playClick();},
});cc.Class.Attr.setClassAttr(ButtonEx, 'normalColor', 'visible', function() {return this.transition === cc.Button.Transition.COLOR;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'pressedColor', 'visible', function() {return this.transition === cc.Button.Transition.COLOR;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'hoverColor', 'visible', function() {return this.transition === cc.Button.Transition.COLOR;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'disabledColor', 'visible', function() {return this.transition  === cc.Button.Transition.COLOR;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'duration', 'visible', function() {return this.transition === cc.Button.Transition.COLOR || this.transition === cc.Button.Transition.SPRITE || this.transition ===cc.Button.Transition.SCALE;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'normalSprite', 'visible', function() {return this.transition === cc.Button.Transition.SPRITE;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'pressedSprite', 'visible', function() {return this.transition === cc.Button.Transition.SPRITE;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'hoverSprite', 'visible', function() {return this.transition ===cc.Button.Transition.SPRITE;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'disabledSprite', 'visible', function() {return this.transition  === cc.Button.Transition.SPRITE;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'zoomScale', 'visible', function() {  return this.transition  === cc.Button.Transition.SCALE;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'normalMaterial', 'visible', function() {return this.enableAutoGrayEffect === true;
});
cc.Class.Attr.setClassAttr(ButtonEx, 'grayMaterial', 'visible', function() {return this.enableAutoGrayEffect === true;
});

ButtonSafe.js  用于控制按钮点击间隔。很多业务我们不希望被一直触发比如几秒响应一次。


"use strict";
/*** 点击间隔时间*/cc.Class({extends: cc.Component,properties: {safeTime: {default: 0.5,tooltip: "按钮保护时间,指定间隔内只能点击一次."}}, start(){let button = this.getComponent(cc.Button);if (!button){return;} this.clickEvents = button.clickEvents; this.node.on('click', ()=>{button.clickEvents = [];this.scheduleOnce((dt)=>{button.clickEvents = this.clickEvents;}, this.safeTime);}, this);}
});

Creator 拓展展Button组件 增加点击音效 默缩放。点击间隔相关推荐

  1. Sprite组件和Button组件的使用

    一.Sprint组件的使用 1.游戏中显示一张图片,通常我们称之为"精灵" sprite 2.cocos creator如果需要显示一个图片,那么需要在节点上挂一个精灵组件,为这个 ...

  2. 【Python】Label组件 Button组件 Checkbutton组件

    Label组件 Label组件是用于在界面上输出描述的标签. #导入tkinter模块所有内容 from tkinter import *#创建一个主窗口,可以容纳整个GUI程序 root = Tk( ...

  3. element-ui button组件 radio组件源码分析整理笔记(一)

    Button组件 button.vue <template><buttonclass="el-button"@click="handleClick&qu ...

  4. 【鸿蒙 HarmonyOS】UI 组件 ( Button 组件 )

    文章目录 一.布局文件中设置 Button 组件属性 二.代码中修改 Button 组件属性 三.Button 点击事件 四.完整代码示例 五.执行结果 六.GitHub 地址 一.布局文件中设置 B ...

  5. Tkinter的Button组件的使用

    Button组件是用于实现一个按钮,它的绝大多数选项跟Label组件是一样的,不过Button组件有一个 command选项,用于指定一个函数或者方法,当用户点击按钮的时候,Tkinter就会自动地区 ...

  6. 手动封装element-ui里面的button组件

    首先我们知道vue里面包含有父子组件 但是你知道如果要进行一个element的手动组件封装 怎么封装吗 1首先第一步 首先我们建立一个组件 最好设置在一个文件目录下比如components 只是一个普 ...

  7. 使用Python中的Button组件制作按钮

    使用Python中的Button组件制作按钮 本篇文章小编给大家分享如何在Python中使用Button组件制作按钮. 生活中我们会遇到各种各样的登录界面,比如在登陆QQ时将账号和密码输入完备后,需要 ...

  8. 头条小程序 button组件 设置边框问题

    在uni-app框架下适配头条小程序,给button组件设置圆角出现了以下现象: 按uni-app文档给button组件加上plain 在开发者工具中可以了,但真机上还是不行. 看了一下字体跳动小程序 ...

  9. vue3新拟态组件库开发流程——button组件源码

    首先写最基础的button组件 <script setup> const props = defineProps({}) const emit = defineEmits(["c ...

最新文章

  1. 各计算机语言之父,四大编程语言之父
  2. Memcached全面剖析
  3. 架构实战项目心得(三):JAVA和MAVEN的环境配置
  4. app uniapp 获取位置_uniApp 地图使用
  5. 提示以下的错误信息:“未能在设计视图中打开, 块中,以不同方式将值括起来 ”...
  6. 【CodeForces - 340B 】Maximal Area Quadrilateral (计算几何,枚举,有坑)
  7. matlab图片渲染,图像 – 在内存中渲染MATLAB图
  8. oracle net conf启动无反应,weblogic突然无法启动,显示Server state changed to FORCE
  9. UVA10880 Colin and Ryan【整除】
  10. JQuery Form AjaxSubmit(options)在Asp.net中的应用注意事项
  11. js-ES6学习笔记-Class(6)
  12. atitit 常见个人与企业与组织机构的信息化.docx
  13. django基于大数据的应届生求职系统--python-计算机毕业设计
  14. 小程序中的api接口请求封装
  15. 计算机控制面板设置命令,电脑的控制面板在哪打开,分享四种打开方法
  16. IOS 中json解析异常Domain=NSCocoaErrorDomain Code=3840之诡异事件
  17. ubuntu磁盘清理
  18. 我爱大自然教案计算机,我们热爱大自然教案.doc
  19. 初涉网络,自己对服务器的一些基础理解
  20. 网络层(三)构成超网

热门文章

  1. 两角和与差的正弦、余弦、正切公式推导
  2. gitbucket push卡住
  3. 逝去的岁月,回忆的青春
  4. 多多情报通:拼多多数据分析工具在哪?
  5. 飞php影视系统,i.php · 姬晓亮/海洋cms 海洋影视管理系统 - 免费开源PHP - Gitee.com...
  6. 走过30年岁月的WPS,它的复兴之路该怎么走
  7. 小型OSPF路由网络的搭建
  8. 太厉害了!28岁任北大博导的她,再获科学大奖!
  9. 颗粒物检测仪常用的三种检测方法
  10. 七周成为数据分析师 | 数据库