问题描述:
1.在开发过程中,服务器延时情况下可能会出现由于连点造成的问题,例如:当前有一个道具,使用这个道具可以召唤一个英雄,点击使用后向服务器发送消息,正常情况下服务器消耗该道具后将没有道具进行下一次召唤,但当网络延迟或其他情况下,客户端未能及时更新数据,再一次点击使用道具,再次服务器发送消息,此时的道具是不足的,可能会造成其他影响。
2.同一个界面存在互斥按钮,两者不可同时点击,在移动端,可以两个手指同时点击不同按钮,可能会造成错误
解决方案:
两种解决方案:
1.每次向服务器发送消息将该按钮锁死,当服务器消息返回再将按钮解开,即可避免该问题,但是工程量较大,每个按钮都要进行处理。
2.写一个Button的扩展方法,给所有的button增加一个公有CD,在CD中不可进行二次点击。
/*
Button 的 AddListener 是在监听列表里面增加一个 Action,不是替换
如果这个 Button(或面板)被复用,再次 AddListener,其上会有两个 Action,新增的在最后
在触发这个事件时,两个 Action 会先后被执行
昨天增加的按钮连点处理,实际上是给所有按钮增加了一个共CD
所以会导致新增的 Action 正好在 CD 内
暴露出了这个问题
这也有可能是点一次发多次消息的问题
新增扩展方法:AddListenerEx
使用方