我在一个按钮里面关联了8个事件,见图中蓝色箭头指的按钮,点击之后会批量执行8个事件,这8个事件对应的同一个脚本的同一个方法,这个方法来减少红色箭头所指的数量,如果这个按钮点快之后,会出现一个并发问题,导致最终得到的结果数量不对。不知道有没有什么方法能阻塞执行。
新手刚接触游戏开发和该引擎的第5天了,很多不太懂,前端JS也有点弱。望大佬指点一下。
图片素材在淘宝买的,一边学一边做

代码啥的贴上来啊
你这思路不对啊,
JS 没有并发问题, 你肯定是其他错误.
他应该是那八个事件没走完就又重新开始了,所以导致的数量不对,不知道队列可不可以解决
加个锁啊, var mutex = true , 每次执行检测一次.
拿走不谢
其中我自己的命名方式:
this.MoneyLabel是一个cc.Label,
this.global.userData.money是玩家的钱数
this.global.moneyDisTime:1,//金币变化时间
this.global.moneyDis:40,//金币变化时间内的变化次数
setMoney() { if(Number(this.MoneyLabel.string)==Number(this.global.userData.money))return; let dis=Math.floor((Number(this.global.userData.money)-Number(this.MoneyLabel.string))/this.global.moneyDis); this.unschedule(func, this.global.moneyDisTime/this.global.moneyDis); let func = function () { if(Number(this.MoneyLabel.string)==Number(this.global.userData.money) ||Math.abs(Number(this.global.userData.money)-Number(this.MoneyLabel.string))<=Math.abs(dis)){ this.MoneyLabel.string=this.global.userData.money; this.unschedule(func, this.global.moneyDisTime/this.global.moneyDis); }else{ this.MoneyLabel.string=Number(this.MoneyLabel.string)+dis; } }.bind(this); this.schedule(func, this.global.moneyDisTime/this.global.moneyDis); },
1赞