[发明专利]一种事件去抖动的方法及装置有效
申请号: | 201611101725.5 | 申请日: | 2016-12-05 |
公开(公告)号: | CN108153581B | 公开(公告)日: | 2022-01-04 |
发明(设计)人: | 龚宁 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 事件 抖动 方法 装置 | ||
1.一种事件去抖动的方法,其特征在于,所述方法包括:
接收当前事件;
在预设的等待时间内,判断是否存在待处理事件;
判断是否存在待处理事件,具体包括:
获取变量hasEvent的值;
判断所述hasEvent的值是否为true;
若所述变量hasEvent的值为true,则确定存在所述待处理事件;
若存在所述待处理事件,判断是否存在待处理的初始事件,若存在所述待处理的初始事件,则执行所述初始事件的处理逻辑;
判断是否存在待处理的初始事件,具体包括:
获取变量hasInitEvent的值;
判断所述hasInitEvent的值是否为true;
若所述变量hasInitEvent的值为true,则确定存在所述待处理的初始事件;
当执行所述初始事件的处理逻辑后,到达预设的延迟等待时间时,执行结束事件的处理逻辑;其中,
所述初始事件为抖动事件发生时不占用资源的状态事件,所述结束事件为所述抖动事件中最后触发的事件。
2.如权利要求1所述的方法,其特征在于,在预设的延迟等待时间内,执行结束事件的处理逻辑之前,所述方法还包括:
将所述hasInitEvent的值赋值为false;
调用timer.cancel()取消所述预设的等待时间后的延迟计时;
调用timer.schedule()重新计时所述预设的延迟等待时间。
3.如权利要求1所述的方法,其特征在于,若不存在所述待处理事件时,所述方法还包括:
将所述当前事件标记为结束事件;
调用timer.schedule()重新计时所述预设的等待时间;
到达所述预设的等待时间时,执行所述结束事件的处理逻辑。
4.一种事件去抖动的装置,其特征在于,所述装置包括:
接收单元,用于接收当前事件;
第一判断单元,用于在预设的等待时间内,判断是否存在待处理事件;
所述第一判断单元具体包括:
第一获取子单元,用于获取变量hasEvent的值;
第一判断子单元,用于判断所述hasEvent的值是否为true;
第一确定子单元,用于在所述变量hasEvent的值为true时,确定存在所述待处理事件;
第二判断单元,用于在所述待处理事件时,判断是否存在待处理的初始事件;
所述第二判断单元具体包括:
第二获取子单元,用于获取变量hasInitEvent的值;
第二判断子单元,用于判断所述hasInitEvent的值是否为true;
第二确定子单元,用于在所述变量hasInitEvent的值为true,确定存在所述待处理的初始事件;
第一执行单元,用于存在所述待处理的初始事件时,执行所述初始事件的处理逻辑;
第二执行单元,用于当执行所述初始事件的处理逻辑后,到达预设的延迟等待时间时,执行结束事件的处理逻辑;其中,
所述初始事件为抖动事件发生时不占用资源的状态事件,所述结束事件为所述抖动事件中最后触发的事件。
5.如权利要求4所述的装置,其特征在于,所述装置还包括:
赋值单元,用于在预设的延迟等待时间内,执行结束事件的处理逻辑之前,将所述hasInitEvent的值赋值为false;
第一调用单元,用于调用timer.cancel()取消所述预设的等待时间后的延迟计时;
第二调用单元,用调用timer.schedule()重新计时所述预设的延迟等待时间。
6.如权利要求4所述的装置,其特征在于,若不存在所述待处理事件时,所述装置还包括:
标记单元,用于将所述当前事件标记为结束事件;
第二调用单元,用于调用timer.schedule()重新计时所述预设的等待时间;
第二执行单元,用于在到达所述预设的等待时间时,执行所述结束事件的处理逻辑。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611101725.5/1.html,转载请声明来源钻瓜专利网。