搜索
bottom↓
回复: 38
打印 上一主题 下一主题

大家设计按键时,是按下时有效还是按下又松开后有效呢

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2009-8-6 09:28:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就是说按键发送是在按下时还是松开后呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

2
发表于 2009-8-6 09:31:32 | 只看该作者
模拟鼠标的方式,分别有几个事件,按下,短按,长按,弹起

出0入0汤圆

3
发表于 2009-8-6 10:03:06 | 只看该作者
我一般常用的是按下又松开...其他方式偶尔用

出0入0汤圆

4
发表于 2009-8-6 10:06:24 | 只看该作者
用状态机 先检底,再检高,

中间还不担误干别的

出0入0汤圆

5
发表于 2009-8-6 10:15:33 | 只看该作者
当然是松开啦,按下有效的话一直按不是出错?

出0入0汤圆

6
发表于 2009-8-6 11:52:13 | 只看该作者
楼上搞笑,按你的逻辑,松开有效的话一直松不是出错?

出0入0汤圆

7
发表于 2009-8-6 13:17:50 | 只看该作者
1#“模拟鼠标的方式,分别有几个事件,按下,短按,长按,弹起”
就是这样。然后想用哪个就用哪个。

出0入0汤圆

8
发表于 2009-8-6 13:21:19 | 只看该作者
唤醒和复位键以电平触发,功能键以边沿触发

出0入0汤圆

9
发表于 2009-8-6 15:48:16 | 只看该作者
其实按键处理的学问非常大,方法很多,不同的环境可能需要的触发方式不同,学好这个东西对今后的实际程序操作非常重要

出0入0汤圆

10
发表于 2009-8-6 15:51:18 | 只看该作者
按下无效,松开有效,用户会认为按键有点失灵的感觉,

出0入0汤圆

11
发表于 2009-8-6 15:54:30 | 只看该作者
楼主买马潮老师的书读一下吧,什么都清楚了.

出0入0汤圆

12
发表于 2009-8-6 15:57:32 | 只看该作者
与楼上同感,我不这样用

出0入0汤圆

13
发表于 2009-8-6 16:26:23 | 只看该作者
按下有效,等待松开后再检下一次按键,怎样?

出0入0汤圆

14
发表于 2009-8-6 16:36:45 | 只看该作者
按键普通有长按键和短按键。当一个按键既要做长按键又要做短按键时,长按键为按下有效,短按键为松开有效。

出0入0汤圆

15
发表于 2009-8-6 16:45:36 | 只看该作者
一般都是按下有效。电脑键盘用多了就习惯了

出0入0汤圆

16
发表于 2009-8-6 22:31:33 | 只看该作者
简单用法是,检测按键=〉确认按下=〉取得键值=〉等待弹起

出0入4汤圆

17
发表于 2009-8-6 22:59:57 | 只看该作者
按下有效,然后要判断按键释放。用状态机做。

出0入0汤圆

18
发表于 2009-8-6 23:07:51 | 只看该作者
一般按键功能的执行分为两种,1、按下后执行, 2、松开后执行,其他非主流按法无视。

如果某个键的功能没有分长按和短按,绝大多数键是这样的,那么推荐使用方法1,因为让人感觉响应灵敏

如果某个键的功能对长按和短按都需要响应,且功能不一样时(执行的内容可能一样,也可能不一样,例如,UP键长按实现连续增加数值和短按一下增加1个数值的功能是一样的,都是增加数值。也可以实现短按执行功能A,长按执行功能B)

这个时候使用松开后再执行就比较好一点,因为如果采用“按下后执行”,则每次按下这个键都会将短按的功能执行一次,再判断是否满足长按的条件,这是某些时候不愿意看到的。如果一使用“松开后执行”,则可以在松开时再判断是长按还是短按,只执行一次需要的功能。

大家继续讨论

出0入0汤圆

19
发表于 2009-8-7 00:03:16 | 只看该作者
如果分长按和短按的话,我是这么处理的:
短按---松开后执行,且按下到松开的时间小于400ms
长按---如果按下去停顿800ms不放,认为是长按,开始执行。松开后则进入下一次按键判断,也就是一直按着的话算一次长按

出0入0汤圆

20
发表于 2009-8-7 08:41:56 | 只看该作者
按下有效。

出0入0汤圆

21
发表于 2009-8-7 09:31:33 | 只看该作者
先不管按下或者放开,只检测IO口的变化情况,再作是按下还是放开判断。

比如:先前记录当关的状态,按下为1,放开为0。对对应的IO口扫描,如果由0--》1  或者 1--》0,则判定IO口有变化。然后做消抖。最后:
1--》0    为按键放开
0--》1    为按键按下

记得同时记录当前的状态哦

出10入120汤圆

22
发表于 2009-8-7 09:50:51 | 只看该作者
当然是按下有效了,松开有效或多或少让用户感觉莫名其妙。

出0入0汤圆

23
发表于 2009-8-7 10:03:03 | 只看该作者
利用状态机

按下有效,而且等待松开

若长时间不松开,则判为连击

出0入0汤圆

24
发表于 2009-8-7 10:25:19 | 只看该作者
我客户要求按下,抬起都有效!

出0入0汤圆

25
发表于 2009-8-7 10:36:36 | 只看该作者
按下再抬起有效,这样可以做复合按键。

出0入0汤圆

26
发表于 2010-8-31 12:11:35 | 只看该作者
期待!!!!

出0入0汤圆

27
发表于 2010-8-31 12:20:48 | 只看该作者
mark

出0入4汤圆

28
发表于 2022-7-22 10:51:19 | 只看该作者
hpdell 发表于 2010-8-31 12:11
期待!!!!
(引用自27楼)

。。。。。。您真是老手

出0入0汤圆

29
发表于 2022-7-22 10:57:49 | 只看该作者
当然是按下有效了,松开有效或多或少让用户感觉莫名其妙,你看看大品牌的仪器按键是咋样就知道了,还有汽车上的按键,还有键盘按键,所有这些都是按下就有效哦。按下再松开才有效的话,做不了长按效果,而且显得反应迟钝。

出0入16汤圆

30
发表于 2022-7-22 11:28:29 | 只看该作者
明显是按下有效,用户体验的问题,按键功能太多没办法才会去判抬起, 正常操作按下去不生效抬起才判断是要多恶心有多恶心。。。

出0入0汤圆

31
发表于 2022-7-26 08:53:29 | 只看该作者
tclg 发表于 2022-7-22 10:57
当然是按下有效了,松开有效或多或少让用户感觉莫名其妙,你看看大品牌的仪器按键是咋样就知道了,还有汽车 ...
(引用自30楼)

貌似解释的非常到位哟

出0入0汤圆

32
发表于 2022-7-26 11:12:19 | 只看该作者
好像只有鼠标点击是松开时才触发 Click 事件,其他地方 (比如键盘按键) 都是按下时触发

出0入0汤圆

33
发表于 2022-7-26 11:13:35 | 只看该作者
鼠标这么设计是不是可以理解为因为它还可以移动,按下后发现不对还能移开再松开,就不会触发了

出0入0汤圆

34
发表于 2022-7-26 17:36:14 | 只看该作者
对于非常重要的功能涉如及人员生命安全的,可以选择松开后执行,例如核蛋发射、自爆等,反悔的话就一直按着吧。

出10入10汤圆

35
发表于 2022-7-27 08:05:40 | 只看该作者
看应用,需要怎样的功能,就怎样处理。

出0入0汤圆

36
发表于 2022-7-27 09:17:53 | 只看该作者
Press, Release, Double-Click, Triple-Click,... Hold.

出0入0汤圆

37
发表于 2022-7-27 09:44:18 来自手机 | 只看该作者
短按,长按,双连击,三连击,莫尔斯……都做出来,就好了?

出0入0汤圆

38
发表于 2022-7-28 08:58:13 | 只看该作者
状态机,可以检测按下,松开,还可以设置按的时间越长,数字跳的越快,比如一开始+1,后面改为+3,+10。消抖什么都好处理。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 16:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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