0

我正在创建 Flash 游戏,只需要鼠标即可玩。我需要禁用所有键盘键,但我无法成功。

我真的不明白怎么做,我需要从所有对象或按钮中删除EventListeners?也许这是禁用所有键的方法?例如我试过这个,但没有工作:

myButton1.removeEventListener(KeyboardEvent.KEY_UP, blindKeyboard);
myButton1.removeEventListener(KeyboardEvent.KEY_DOWN, blindKeyboard);
myButton2.removeEventListener(KeyboardEvent.KEY_UP, blindKeyboard);
myButton2.removeEventListener(KeyboardEvent.KEY_DOWN, blindKeyboard);

function blindKeyboard(e:KeyboardEvent):void{
    e.preventDefault();
    e.stopPropagation();
}

你可以帮帮我吗?谢谢。

4

2 回答 2

3

首先,在 ActionScript 3 中,您不会将键盘事件侦听器放在对象上,而是放在舞台上。

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressedDown);

其次,你甚至为键盘设置了一个事件监听器吗?因为除非你有,否则游戏不应该接受任何键盘命令。您需要为其添加一个事件侦听器。

还是您的意思是玩家不应该在输入文本字段中输入任何内容?那么如何使用这个呢?

inputField.maxChars=0;

最大字符数设置为零,这意味着他们不能输入任何内容。

于 2013-05-12T14:12:17.787 回答
1

stage.addEventListener(KeyboardEvent.KEY_UP, blindKeyboard);
stage.addEventListener(KeyboardEvent.KEY_DOWN, blindKeyboard);

function blindKeyboard(e:KeyboardEvent):void{
    e.preventDefault();
    e.stopPropagation();
}

这应该有效。但请记住,某些键无法关闭,并且会保持默认行为(例如,如果您在浏览器页面中发布游戏,您将无法阻止退出键退出全屏模式)。如果您需要更多帮助,则需要更多信息......如果您仍然需要一些帮助,请随时回答我并为您的问题添加更多详细信息。

于 2013-05-13T04:15:59.127 回答