javascript - 使用WMODE =“window”时,使用JS在Flash插件上捕获右键单击事件

标签 javascript apache-flex browser flash

我正在为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/

相关文章:

apache-flex - Silverlight 安装基础 - 它有多大?

apache-flex - 如何在 ActionScript 类中实现数据绑定(bind)?

java - 在 JBOSS 6 AS 上配置 TLS 会导致 ERR_SSL_VERSION_OR_CIPHER_MISMATCH(在 Chrome 中)或 ssl_error_no_cypher_overlap(在 Mozilla 中)错误

javascript - 返回 AJAX 回调返回

javascript - 我如何在 jQuery 中做到这一点?在 $ 中传递选择器而不是 jQuery 对象的任何技巧

JavaScript 比较功能不起作用

javascript - 如何使用 JavaScript 为所有浏览器实现 "back to"功能

javascript - 如何在其他人的谷歌日历上创建事件

apache-flex - 如何确定一个字符串是否包含特定的子字符串

java - 如何使用 Selenium WD 针对不同的浏览器类型打开隐身/私有(private)窗口?