对于AS2,我需要允许用户按“Alt + N”转到下一页,但问题是在Windows中,只要按下Alt,它就会关闭flash嵌入并且keylistener永远不会收到它。
研究如何做,似乎解决方案是使用Javascript来禁用Firefox中的ALT键的默认操作(它需要运行的浏览器)。我不确定这是不是正确的道路,也不确定如何做到这一点。
答案 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),所以我根本不知道它是否适用于其他浏览器。希望这有帮助!