Actionscript 3 如何防止F10在AS3 AIR应用程序中激活菜单?

Actionscript 3 如何防止F10在AS3 AIR应用程序中激活菜单?,actionscript-3,air,Actionscript 3,Air,我正在使用ActionScript3在FlashCS5.5中开发一个AIR应用程序。用户必须能够将功能键F1-F10用于自定义应用程序特定功能。除了F10外,它们都工作得很好。我可以很好地检测F10的上键和下键,但当F10被释放时,应用程序菜单接收焦点,应用程序忽略随后的功能键按下,直到a)再次按下F10,或b)按下非功能键。无论我是否添加了新的NativeMenu(我希望应用程序没有),都会发生这种情况 有没有办法 按F10时防止菜单接收焦点,或 按F10后,强制焦点返回到内容,以便识别随后的

我正在使用ActionScript3在FlashCS5.5中开发一个AIR应用程序。用户必须能够将功能键F1-F10用于自定义应用程序特定功能。除了F10外,它们都工作得很好。我可以很好地检测F10的上键和下键,但当F10被释放时,应用程序菜单接收焦点,应用程序忽略随后的功能键按下,直到a)再次按下F10,或b)按下非功能键。无论我是否添加了新的NativeMenu(我希望应用程序没有),都会发生这种情况

有没有办法

  • 按F10时防止菜单接收焦点,或
  • 按F10后,强制焦点返回到内容,以便识别随后的功能键按下

  • 您可以创建自己的完全自定义菜单,而无需依赖默认菜单项并将其添加到菜单项中,这是您在这种情况下可能必须执行的操作


    你可以试着用鼠标,但这是一个有点犹太区/黑客的解决方案,如果它能工作的话,所以我建议你从零开始构建自己的本地菜单项。基本上,这与您正在做的事情是一样的,只是您必须首先删除所有默认菜单项(“文件”、“编辑”等),并有选择地将它们替换为您自己的默认项。

    +1但我不会说防止默认是一种攻击。“防止违约”已具体落实到位。。。到好。。。防止默认行为。我的应用程序将完全没有菜单。问题是,当按下并释放F10时,应用程序将焦点转移到菜单。无论是否添加了AIR Native菜单和菜单项,此行为都是相同的。因此,即使在应用程序的顶部边缘看不到任何菜单,行为也是一样的——在焦点离开菜单之前(再次按F10键或任何其他非功能键),其他功能键都不会注册。我尝试了preventDefault,但AIR不允许取消keyUp事件(问题中的F10行为发生在keyUp上)。最简单的例子是:
    stage.addEventListener(KeyboardEvent.KEY\u UP,fl\u KeyboardUpHandler);函数fl_KeyboardUpHandler(event:KeyboardEvent):void{keyText.text=(“key-UP”+event.keyCode);}
    在舞台上有一个名为“keyText”的动态文本框,将其作为as 3、AIR 2.3应用程序进行测试。按下F10(键代码121)后,在再次按下非功能键(或F10)之前,另一次功能键按下不会注册。