Adobe的flash player版本检测代码在本人电脑上失效!

来源:互联网 发布:java编程题库 编辑:程序博客网 时间:2024/05/01 07:10

初学FLEX,用FLEX BUILDER3.0 FOR ECLIPSE写个HELLOWORLD程序调用环境的调试功能!

居然出现:

Alternate HTML content should be placed here. This content requires the Adobe Flash Player. Get Flash

开始认为IE插件没装好,无论怎样装还是不行。

FLASH插件版本不是调试版本的?怎样设置?

困惑。。直至试到

在出现上面提示界面后再双点击bin-debug目录下的.swf文件会在断点位置停下,才有了头绪。顺藤摸瓜啊!终于找到问题根源所在。

思路

1、调试弹出的HTML页面提示没有FLASH,而接着双击.swf文件却可以调试,查年html页面的代码,发现是通过JS装载入FLASH的,而这之前会检测FLASH版本。肯定是检测出问题了。

2、调试其检测代码var hasProductInstall = DetectFlashVer(6, 0, 65);得到FALSE有问题,进入DetectFlashVer的代码

else if ( isIE && isWin && !isOpera ) {
  flashVer = ControlVersion();
 }

的isWin ==FLASE有问题,找到定义行

var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;

原来的我的电脑用navigator.appVersion得不到操作系统信息,在其他三台电脑上试navigator.appVersion有相关信息。

这就是问题所在!

3、解决办法,分析FLEX BUILDER3.0调试生成的文件也是一些模板文件复制过来的,修正模板文件即可。

在网上找下说可以修改这里

Flex Builder 3 Plug-in/eclipse/plugins/com.adobe.flexbuilder.project_3.0.214193/resources

下面有个html-templates.zip

4、解压出来,搜索有isWin的地方,改成

var isWin = (navigator.platform.toLowerCase().indexOf("win") != -1) ? true : false;

再压缩代替原来的html-templates.zip

5、可以用了。如果还有补充或错误的地方,请赐教本人。

原创粉丝点击