использование javascript для отключения нажатия клавиш FF для встраивания AS2

Для AS2 мне нужно разрешить пользователю нажимать «Alt + N», чтобы перейти на следующую страницу, но проблема в том, что в Windows всякий раз, когда нажимается Alt, фокус смещается с встроенной флэш-памяти, и прослушиватель ключей никогда не получает его.

Исследуя, что делать, кажется, что решение состоит в том, чтобы использовать Javascript для отключения действия по умолчанию клавиши ALT в Firefox (браузере, в котором он должен работать). Я не уверен, что это правильный путь, и не совсем уверен, как это сделать.


person Ryan Koehler    schedule 30.05.2012    source источник


Ответы (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), поэтому я вообще не знаю, работает ли он в других браузерах. Надеюсь это поможет!

person John P Bloch    schedule 31.05.2012