cocoscreator 防止button连击多次触发事件
发布时间:2020-12-14 18:55:06 所属栏目:百科 来源:网络整理
导读:很多时候,ui上面的button都只需要单击触发一次,当用户快速连续点击时就有可能出现非意料的事情,解决这个问题很简单,只要规定button在指定间隔时间内只能触发一次就行。 将下面的代码保存为ButtonSafe.js,只需要给每个button控件添加下面的脚本并指定间隔
很多时候,ui上面的button都只需要单击触发一次,当用户快速连续点击时就有可能出现非意料的事情,解决这个问题很简单,只要规定button在指定间隔时间内只能触发一次就行。 将下面的代码保存为ButtonSafe.js,只需要给每个button控件添加下面的脚本并指定间隔时间即可防止重复点击。 /** * Created by skyxu on 2018/9/12. */ "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); // mark: 这种方式会导致快速点击按钮时触摸穿透(按钮禁用时不再接受触摸事件) // let autoGrey = button.enableAutoGrayEffect; // button.enableAutoGrayEffect = false; // button.interactable = false; // this.scheduleOnce((dt)=>{ // button.enableAutoGrayEffect = autoGrey; // button.interactable = true; // },this.safeTime); },this); } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLite 下载与SQLite.lib生成
- FAjax,打造异步取数据新时代!~~当然啦,说得有点夸张。。。
- React Native 系列(八) -- 导航
- 正则表达式(例子)
- CLLocationManager.authorizationStatus()总是CLAuthorizat
- 使用ajax调用下载PHPExcel
- c# – 如何忽略SSL证书是由未知的证书颁发机构问题签名的?
- Preventing Back Button Default When Navigating Views in
- (翻译) Container Components
- ruby-on-rails – 在rails上的ruby目录下读取文件