独闷闷网

 找回密码
 立即注册
搜索
查看: 2679|回复: 0
收起左侧

[原创] 网友“just-珠海”对鸿哥的双击按键程序提出的疑问?已解答。

[复制链接]
发表于 2014-11-7 00:08:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 jianhong_wu 于 2014-11-7 23:38 编辑

just-珠海:
双击按键.jpg
而且鸿哥如果这时不是连续按下两次,那如何执行程序.

鸿哥-深圳:
我在if(key_sr1==1)里面有一个限制两次触发按下去的时间间隔的变量uiKeyIntervalCnt1++;这个计时变量的作用是,如果你只按了一次,在规定的时间内没有再按第二次,那么刚才按的第一次就会自动清除记录了,你下次再想触发,还是必须连续按两次才能触发按键,而且这两次的时间间隔是不能太长。

just-珠海:
1.jpg
鸿哥,如果之前按键按下一次,现在再来一次不是应该触发按键吗?接下来的程序代码看不懂啥意思啊.
那为什么不是写的是触发程序呢?


鸿哥-深圳:
如果之前按下了一次,现在再来一次,必须保证这次的时间距离上次的时间不能太久,否则就不触发。如果连续两次的时间很短才会触发。这段代码的意思是,如果你的两次时间太长了,我就把上一次的记录清零了.

just-珠海:
嗯,原来是这样。上一次的清零为了下一次的重新来过.就像鼠标那样~需很短时间双击打开.但是这间隔时间到底多少是根据项目要求来做吗?

菜鸟-佛山:
是的。这个时间由自己定的.

just-珠海:
2.jpg
这三个if执行完才是到else if 吧?

菜鸟-佛山:
第一个if成立,第二个if成立,才执行第三个if。如果第一个都不成立就直接执行else if。

just-珠海:
按你这样说,第一个if成立的话,就没必要执行第二个了,因为都已经判定没有键按下了。

菜鸟-佛山:
对。

just-珠海:
怎么还跳到如果之前有按键按下一次呢,那你不是自相矛盾?

菜鸟-佛山:
你第一次按下,就势必进入else if中将uckeyTouchCnt+1。

just-珠海:
3.jpg
那第一次没按下呢?

菜鸟-佛山:
然后才是检测到第一个if又成立了,再是第二个也成立,再执行第三if。

just-珠海:
怎么还去判定呢?


菜鸟-佛山:
没按下是ucKeyTouchCnt==0;所以不会进去第二个if语句中,也就不执行第三个语句。只有执行过一次else if后才能进。

just-珠海:
那这个何时发挥作用?

菜鸟-佛山:
当你按下一次按键的时候。

just-珠海:
这样吧。
4.jpg

菜鸟-佛山:
对。

just-珠海:
为什么不把这一部分的if写在else if里边呢。

菜鸟-佛山:
按键按了一次,松手后就进入第二个if。因为是要按键松手才检测啊。当你按第一下,松手后,就不在else if中。第一个if成立了,所以不再else if中。

just-珠海:
我暂时自己慢慢消化就好,应该没问题啦。谢啦。


乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-3-29 19:02 , Processed in 0.201355 second(s), 21 queries .

快速回复 返回顶部 返回列表