高效判断是不是鼠标双击或者是多击的原理分析

来源:互联网 发布:红衣主教 知乎 编辑:程序博客网 时间:2024/05/18 00:22

目标数组和原数组可以是同一个数组:

创建一个long类型的数组.长度为2,

long[] mHits = new long[2]{};

System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);//拷贝数组

//判断是否是多击事件:只要指定数组的长度为多击就可以,如果判断双击,数组长度为2,如果是判断三击,数组长度为三

mHits[1]=System.currentTimeMillis();//指定当前的数组的角标为1的值,

没有点击的时候原数组为:

src{null,null}

目标数组为(其实就是同一个数组)

,dst{null,null}

第一次点击的时候,原数组为:

mhits{null,current1}

目标数组为,

src{null,current} ,

第二次点击的时候:原数组为

dst{null,current}

目标数组为,

mhts{current,current2};

最后在判断数组的最后一个角标减去第一个角标,如果值小于等于一定时间间隔内,如500,则可以判断为双击事件,多击时间的原理也一样,只需要把long类型的数组长度该为我们想要的多击数即可,

0 0