【问题标题】:Action Script 3. How to disable all keyboard keys动作脚本 3. 如何禁用所有键盘键
【发布时间】:2013-05-12 14:04:10
【问题描述】:

我正在创建 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();
}

你能帮帮我吗?谢谢。

【问题讨论】:

    标签: actionscript-3 flash actionscript keyboard key


    【解决方案1】:

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

    stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressedDown);
    

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

    或者您的意思是玩家不能在输入文本字段中输入任何内容?那用这个怎么样?

    inputField.maxChars=0;
    

    最大字符数设置为零,表示不能输入任何内容。

    【讨论】:

    • 感谢您的回答。我的意思是,我需要让玩家不能点击任何键。现在他们可以使用箭头/制表符/空格/回车键,他们可以轻松赢得比赛。我需要禁用这些功能。
    • 我以前用 sage 做过,但没有成功。
    • 点击键?你的意思是媒体,对吧?什么是“圣人”?嗯,你真的给这个游戏编程了吗?因为如果你没有添加键盘事件监听器,玩家肯定不能移动。 Flash Player 根本不关心是否按下了某个键,除非您明确告诉它按下某个键。 Ctrl-F 您的 addEventListener 代码。它必须在那里。如果你真的不明白为什么玩家可以通过按键移动,你介意给我看看你的代码吗?
    • 我不是告诉你添加代码,我是告诉你找到代码中的任何事件监听器并将其删除。您无需添加任何内容即可禁用游戏中的键盘支持。您只需要删除您必须添加的内容。正如我告诉你的,除非你给它一个事件监听器,否则 ActionScript 并不关心任何按下的键。删除监听器,你就解决了问题。
    • 哦,现在清楚了!您正在寻找的是 .tabChildren 属性。这是父母的财产。它定义了您是否能够使用 Tab 选择其子项。我不知道它是否会向下级联(影响所有孙子和曾孙),但请尝试在您的舞台上、在包含 MovieClip 的主文件上或在问题元素的直接父级上将其设置为 false。 someMovieClip.tabChildren=false;还有 .tabEnabled,您可以直接放在子级上,以防您只希望某些元素离开选项卡焦点顺序。
    【解决方案2】:

    
    
    
    stage.addEventListener(KeyboardEvent.KEY_UP, blindKeyboard);
    stage.addEventListener(KeyboardEvent.KEY_DOWN, blindKeyboard);
    
    function blindKeyboard(e:KeyboardEvent):void{
        e.preventDefault();
        e.stopPropagation();
    }
    

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

    【讨论】:

    • 谢谢你的回答,但我不明白发生了什么,我可以使用箭头键、制表符、空格键,我试过这个添加、删除监听器,没有任何帮助...
    • 这是“错误”我不能使用任何键,但是在我单击“Tab”键后,第一个按钮会变成“黄色边框”,我可以使用箭头(左、右、上、下) 用于选择其他按钮、卡片,我可以单击“空格”按钮来选择它
    • 我明白了...这是焦点问题。当您使用 tab 键时,焦点切换到按钮,然后显示为黄色边框。不确定您的其余代码有什么问题,也许如果您发布更多代码,我将能够提供帮助;)
    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 2018-09-14
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2015-11-07
    • 2017-02-02
    • 1970-01-01
    相关资源
    最近更新 更多