1

AS2 の場合、ユーザーが「Alt + N」を押して次のページに移動できるようにする必要がありますが、Windows では、Alt を押すたびにフラッシュ埋め込みからフォーカスが外れ、キーリスナーがそれを受信しないという問題があります。

何をすべきかを調べたところ、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 に答える