KeyboardManager

.Input.Keyboard. KeyboardManager

键盘管理器是一个助手类,属于全局输入管理器. 它的作用是监听本机DOM键盘事件,然后存储它们供键盘插件进一步处理. 您不需要直接创建这个类,输入管理器将自动创建它的一个实例,如果键盘 游戏配置中已启用输入.

Constructor

new KeyboardManager(inputManager)

Since:
  • 3.16.0
Parameters:
Name Type Description
inputManager Phaser.Input.InputManager 对输入管理器的引用.

Members

captures :Array.<number>

Since:
  • 3.16.0
一组键码值,这些值将自动调用 `preventDefault` , 只要 `Keyboardmanager.Preventdefault` 布尔值设置为 `true` . 默认情况下,数组为空. 按键必须在按下时不被修改才能被捕获. 未修改的键是指没有按住修饰键的键.修饰键是 移动,控制,改变和元键(苹果电脑上的命令,视窗上的视窗键). 因此,如果用户按shift + r,它不会阻止这种组合,因为修饰符. 然而,如果用户自己按下r键,它的事件将被阻止. 如果您希望停止捕获键,例如切换到基于DOM的元素,那么 您可以在运行时切换 `Keyboardmanager.Preventdefault` 布尔值. 如果您需要更具体的控制,您可以创建关键对象,并在每个对象上设置标志. 这个数组可以通过游戏配置来设置 可以调用 `addCapture` 方法.另见 `removeCapture` 和 `clearCaptures` .
Type:
  • Array.<number>

enabled :boolean

Since:
  • 3.16.0
Default Value:
  • false
一个布尔值,它控制是否启用键盘管理器. 可以随时切换.
Type:
  • boolean

manager :Phaser.Input.InputManager

Since:
  • 3.16.0
对输入管理器的引用.
Type:

onKeyDown :function

Since:
  • 3.16.00
按键事件处理程序. 这个函数被发送到本机DOM KeyEvent. 最初为空,并在 `startListeners` 方法中绑定.
Type:
  • function

onKeyUp :function

Since:
  • 3.16.00
按键事件处理程序. 这个函数被发送到本机DOM KeyEvent. 最初为空,并在 `startListeners` 方法中绑定.
Type:
  • function

preventDefault :boolean

Since:
  • 3.16.0
一种标志,用于控制未修改的密钥是否与存储在 `captures` 数组中的密钥相匹配, 有没有叫他们 `preventdefault` . 未修改的键是指没有按住修饰键的键.修饰键是 移动,控制,改变和元键(苹果电脑上的命令,视窗上的视窗键). 因此,如果用户按shift + r,它不会阻止这种组合,因为修饰符. 然而,如果用户自己按下r键,它的事件将被阻止. 如果您希望停止捕获键,例如切换到基于DOM的元素,那么 您可以在运行时切换此属性.
Type:
  • boolean

target :any

Since:
  • 3.16.0
游戏配置中定义的键盘事件目标. 通常是游戏渲染的窗口,但是可以是任何交互式的DOM元素.
Type:
  • any

Methods

addCapture(keycode)

Since:
  • 3.16.0
默认情况下,当按下一个键时,Phaser不会阻止事件向上传播到浏览器. 有些键可能很烦人,比如箭头键或空格键,它们会使浏览器窗口滚动. 这种`addCapture`的方法能够为特定的键使用键盘事件,所以它不会出现在浏览器中 并导致默认的浏览器行为. 请注意,键盘捕获是全局的.这意味着如果您在场景中调用此方法,比如说防止 空格键触发页面滚动,然后它会阻止你游戏中的任何场景,而不仅仅是调用的场景. 您可以传入单个键码值,键码数组或字符串: ```javascript this.input.keyboard.addCapture(62); ``` 一组关键代码: ```javascript this.input.keyboard.addCapture([ 62, 63, 64 ]); ``` 或者字符串: ```javascript this.input.keyboard.addCapture('W,S,A,D'); ``` 要使用非字母数字键,请使用一个字符串,如 `UP` , `SPA` 或 `Z` . 您还可以提供一个混合字符串和键码整数的数组. 如果调用此方法后有活动捕获,则 `preventDefault` 属性设置为 `true` .
Parameters:
Name Type Description
keycode string | number | Array.<number> | Array.<any> 允许捕获的键码,防止它们到达浏览器.

clearCaptures()

Since:
  • 3.16.0
删除所有键盘捕获并将 `preventDefault` 属性设置为 `false` .

destroy()

Since:
  • 3.16.0
销毁此键盘管理器实例.

removeCapture(keycode)

Since:
  • 3.16.0
移除现有的密钥捕获. 请注意,键盘捕获是全局的.这意味着如果从场景中调用此方法,要移除 捕捉一个键,然后它将在你的游戏中的任何场景中移除它,而不仅仅是调用的那个. 您可以传入单个键码值,键码数组或字符串: ```javascript this.input.keyboard.removeCapture(62); ``` 一组关键代码: ```javascript this.input.keyboard.removeCapture([ 62, 63, 64 ]); ``` 或者字符串: ```javascript this.input.keyboard.removeCapture('W,S,A,D'); ``` 要使用非字母数字键,请使用一个字符串,如 `UP` , `SPA` 或 `Z` . 您还可以提供一个混合字符串和键码整数的数组. 如果调用此方法后没有剩余的捕获,则将 `preventDefault` 属性设置为 `false` .
Parameters:
Name Type Description
keycode string | number | Array.<number> | Array.<any> 要禁用捕获的关键代码,允许它们再次到达浏览器.

startListeners()

Since:
  • 3.16.0
启动键盘事件侦听器运行. 这是自动调用的,不需要手动调用.

stopListeners()

Since:
  • 3.16.0
停止关键事件侦听器. 这是自动调用的,不需要手动调用.