flash在360、腾讯浏览器下的显示出错问题

来源:互联网 发布:海岛21研究所升级数据 编辑:程序博客网 时间:2024/05/30 02:25

1.问题描述:360、腾讯浏览器在flash报错后会中止当前逻辑的执行,而IE7、IE8、FF会忽略错误继续执行后面的逻辑。

表现:如果flash在初始化过程中出错,在360或腾讯浏览器下会发现初始化操作未执行,出现舞台空白等情况。

解决方案:养成好的代码逻辑,catch可能出现的错误。特别是在构造函数中添加catch,否则一旦出错会造成整个Flash无法使用。

 

2.问题描述:360、腾讯浏览器在第二次创建swfObject时,如果初始化过程中使用ExtraInterface会出现安全域的错误,IE7、IE8、FF浏览器下未出现该问题。

可能原因:swfObject有两种创建方式,一种为OBJ与参数一起创建,另一种是先创建obj再设置参数。由于初始化过程中调用出错但完成后却可以顺利调用,因此怀疑第二次创建过程使用的是第二种方式。

表现:如果在Flash初始化过程中使用ExtraInterface可能会导致报错,从而引发 (1)中的问题。

解决方案:尽量不要在文档类构造函数中使用ExtraInterface操作,最好放在初始化完成后进行;在使用ExtraInterface时尽量使用catch捕获相关错误。

 

 

更正:问题2的原因分析错了。

第二种方式只有在非IE下才会使用,而360.TT都是IE内核,每次都是使用的第一种创建方式。通过在SWF中添加测试函数也证明第二次创建swfObject时使用的第一种创建方式。

 

对于第二个问题的原因,我也搞的一头雾水了~

 

 

原创粉丝点击