使用javascript禁用AS2嵌入的FF键按下

时间:2012-05-30 02:00:33

标签: javascript firefox actionscript-2 keyboard-events

对于AS2,我需要允许用户按“Alt + N”转到下一页,但问题是在Windows中,只要按下Alt,它就会关闭flash嵌入并且keylistener永远不会收到它。

研究如何做,似乎解决方案是使用Javascript来禁用Firefox中的ALT键的默认操作(它需要运行的浏览器)。我不确定这是不是正确的道路,也不确定如何做到这一点。

1 个答案:

答案 0 :(得分:1)

嗯,你需要在flash程序中使用外部接口;像这样的东西:

function keyCodeReceptor( code ){
  switch ( code ) {
    case 67:
      // go to the next page
      break;
    // add any other keys you need to bind to "Alt+key" combination
    default:
      break;
  }
}

flash.external.ExternalInterface.addCallback( 'doKey', null, keyCodeReceptor );

然后,您需要在嵌入对象的HTML中使用以下内容:

(function(){
  // Use the name or index of your embed here
  var flash = document.embeds[0];
  window.addEventListener( 'keydown', function( event ){
    if( event.altKey && event.keyCode == 67 ){
      event.preventDefault();
      event.preventCapture();
      event.preventBubble();
      flash.doKey(event.keyCode);
    }
  });
})();

另外,请确保嵌入的allowScriptAccess属性设置为"always"

我只测试过它是Firefox(最新的,Mac和Windows),所以我根本不知道它是否适用于其他浏览器。希望这有帮助!