很多时候,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); }});总结
以上是内存溢出为你收集整理的cocoscreator 防止button连击多次触发事件全部内容,希望文章能够帮你解决cocoscreator 防止button连击多次触发事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)