【问题标题】:Livecode - How to use keyDown?Livecode - 如何使用 keyDown?
【发布时间】:2022-01-12 17:00:36
【问题描述】:

我已经搜索了很长时间,我想知道, 当我按下特定键(例如 W)时,我如何编码会发生的事情。 我在本节中发现了许多有助于通用键的线程,例如删除键或空格键以及一些 keyDown theKey,但是如何定义“theKey”? 请帮忙, 菲斯夫

【问题讨论】:

  • edit您的问题标题描述您遇到的问题或您要问的问题。您当前的标题是标签信息加上“keyDown”的无意义重复,它不传达任何信息。您的标题应该足够清晰和具有描述性,以便对正在浏览搜索结果列表并试图找到问题解决方案的未来网站用户有意义,而您当前的标题在这方面毫无用处。有关详细信息,请参阅How to Ask。谢谢。
  • @KenWhite 对于 LiveCode 用户,标题 KeyDown 足以理解这是什么意思。有经验的 LiveCode 用户甚至可以在不阅读问题的情况下给出答案。
  • @Mark:你回复的评论是3天前的,发帖人2天前编辑了标题。 IOW,您迟到了大约 2 天,在海报编辑标题后发表评论。在责备某人之前,您应该查看日期。 :-)
  • @KenWhite 我只等了一天才回复。仍然认为“LiveCode - Keydown”对于有经验的 LiveCode 用户来说已经足够了。
  • @Mark:标题中的LiveCode是多余的标签信息,根本不应该出现在标题中,这样会留下一个Keydown这个词,显然是没有意义的帖子的标题。在这里提问的人应该清楚地描述他们遇到的问题。请参阅How to Ask 以了解指南对预期质量的看法,或查看help center 页面。 SO 有质量标准是有原因的,如果需要,应该对新用户进行有关这些标准的教育。

标签: livecode


【解决方案1】:

对于字母数字键,您可以按如下方式使用:

on keyDown thekey
   switch thekey
      case "w"
         answer "w key pressed"
         break
      default
         pass keyDown
   end switch
end keyDown 

KeyDown 是每次用户按下键盘符号(不是功能键)时都会产生的事件,thekey 参数将包含所按下键的符号。

另一方面,如果要区分大写字母,则必须将 CaseSensitive 属性设置为 TRUE

set the caseSensitive to true

rawKeyDown 属性的工作方式类似,但不是传入参数,而是按下键的符号,您将获得按下键的代码,包括 shift、F# 等功能键。

on rawKeyDown theKeyCode
   switch theKeyCode
      case 32
         answer "SPACE KEY"
         break
      case 119
         answer "w key pressed"
         break
      default
         pass rawKeyDown
   end switch
end rawKeyDown

常量对于使您的代码更具可读性非常有用,将常量添加到以前的代码将如下所示(请注意,大写键具有小写以外的代码):

constant kSpaceKey = 32
constant kwKey = 119
constant kWUpperKey = 87

on rawKeyDown theKeyCode
       switch theKeyCode
          case kSpaceKey 
             answer "SPACE KEY"
             break
          case kwKey 
             answer "w key pressed"
             break
          case kwKey 
             answer "w key pressed"
             break
          case kWUpperKey 
             answer "upper W key pressed"
             break
          default
             pass rawKeyDown
       end switch
    end rawKeyDown

您也可以在卡片脚本中使用此脚本来显示您按下的键的代码:

  on rawKeyDown theKeyCode
       put theKeyCode
  end rawKeyDown

永远记得传递 rawKeyDown、rawKeyUp、KeyDown 和 KeyUp 事件,如果你 想让他们继续正常的消息流

【讨论】:

  • 非常感谢,但是,在 rawKeyDown 中,我怎么知道我需要哪个案例编号?
  • 您可以参考ferruslogic.com/blog/… 或者可以使用sn-p code 找到带有livecode 的特定key code,我将更新答案以显示如何
猜你喜欢
  • 1970-01-01
  • 2013-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
相关资源
最近更新 更多