Livecode - 如何使用keyDown?

Livecode - How to use keyDown?

我已经搜索了很长时间了,我想知道, 当我按下一个特定的键(例如 W)时,我该如何编写代码来让事情发生呢? 我发现许多线程在本节中使用通用键(如删除键或空格键和一些 keyDown theKey)提供帮助,但我如何定义“theKey”? 请帮忙, FESFEW

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

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

Always remember to pass rawKeyDown, rawKeyUp,KeyDown and KeyUp events if you want to allow them to continue normal message flow