1

对于 AS2,我需要允许用户按“Alt + N”以转到下一页,但问题是在 Windows 中,每当按下 Alt 时,它都会将焦点从 Flash 嵌入中移开,并且 keylistener 永远不会收到它。

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

4

1 回答 1

1

好吧,您需要在闪存程序中使用外部接口;像这样的东西:

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),所以我完全不知道它是否适用于其他浏览器。希望这可以帮助!

于 2012-05-31T13:32:54.067 回答