初学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、可以用了。如果还有补充或错误的地方,请赐教本人。
初学者在使用Flex Builder 3时遇到Flash Player版本检测失效的问题,导致调试HELLO WORLD程序时HTML页面提示需要Flash Player。经过排查,发现问题在于navigator.appVersion在某些电脑上无法获取操作系统信息,导致isWin判断错误。解决方案是修改Flex Builder 3的html模板文件,将isWin的检测方式改为使用navigator.platform,从而修复了版本检测问题。
1万+

被折叠的 条评论
为什么被折叠?



