我正在为Flash应用程序使用自定义的右键单击上下文菜单(覆盖默认的Adobe菜单)。为此,Uza的右键单击解决方案(http://www.uza.lt/blog/2007/08/solved-right-click-in-as3)很好用。
但是,Flash Player插件(用于Firefox / Chrome等)存在一个错误,该错误在将WMode用于html嵌入时会中断国际字符的使用。 WMode =“widnow”有效。
http://bugs.adobe.com/jira/browse/FP-501
在这里可以更好地看到这个问题-
http://www.5etdemi.com/blog/archives/2005/06/firefox-wmodetransparent-is-completely-screwy-and-breaks-textfields/
问题
我需要捕获从Flash Player插件向Web浏览器容器触发的右键单击事件,而无需在html embed标签上使用WMode(即WMode =“window”)
有人对此有想法吗?
最佳答案
右键单击JS hack可以在不透明和透明模式下进行,因为浏览器正在将Flash呈现在其自己的显示树中。在这种模式下,浏览器接收鼠标事件,允许它们由JS处理,然后将它们传递给Flash插件。 (这就是为什么在透明模式下输入带重音或非拉丁字符的bug的原因,因为某些浏览器无法正确传递这些字符)。
在其他窗口模式下,Flash对象不是以相同的方式成为html DOM的一部分。取而代之的是给它一个显示矩形,可以直接绘制到它上。它还可以直接从操作系统获取其键盘和鼠标事件,因此,我不希望任何JS上下文菜单黑客都能在任何主流浏览器中使用。
关于javascript - 使用WMODE =“window”时,使用JS在Flash插件上捕获右键单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/909077/