藏井阁

" Scientists ask why, engineers ask why not? "

JS和FLASH交互的一个注意点

在js调用flash抛出的接口函数时,在flash play 10.0.x.x下会报错,关键代码在(xxxx根据实际情况不同):

try { __flash__toXML(xxxx()) ; } catch (e) { ““; }

关于Flash怎么实现和js通信的,可以参看这里ExternalInterface 与 JavaScript

步步排查,最终定位到问题所在:

必须要向DOM树上存在的节点,将flash innerHTML进去才行,否则在flash player10.0下js不能调用到flash抛出的接口函数。

之前的做法是先将flash inner到一个js创建的节点中,然后再把这个节点append到页面中。这样引发在flash player下js不能和flash通信的问题。

Plugin Switcher

这里介绍一个工具:Plugin Switcher,用于切换各个flash player的版本。省得到处找各个版本的flash player了,还省得手动卸载和安装了。

Plugin Switcher下载地址:http://www.pluginswitcher.de/download/index.html

手动安装低版本的flash player

如果之前安装过flash player 10.1.x.x的版本,卸载后再安装比它低的版本,提示“正尝试安装的 Adobe(R) Flash(R) Player 版本不是最新的版本。请访问 http://www.adobe.com/go/getflashplayer 以获取最新、最安全的版本。”。如下图:

正尝试安装的 Adobe(R) Flash(R) Player 版本不是最新的版本。请访问 http://www.adobe.com/go/getflashplayer 以获取最新、最安全的版本。

如果不使用工具,手动办法如下:

卸载flash player后,打开注册表,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\SafeVersions, 删除右侧相关版本号内容,或者全部删除,再安装低版本flash player。如下图:

类别: Web开发

Tags: Flash Player,工具

damon pang

大魔

Damo

i#impng.com

专注Web开发,爱电影,爱One Piece.