首页 > 代码库 > Flash与IE奇怪的关键字冲突

Flash与IE奇怪的关键字冲突

我有一个小小的swf文件,用来播放声音,加入到HTML后,在Firefox/chrome下播放正常,唯独IE8提示

消息: 对象不支持此属性或方法行: 48字符: 3代码: 0URI: ....

我查看文件中的48,是html标记,不可能有什么冲突。然后又逐个查看js文件,也未发现问题。最后怀疑是swf文件引起ie报错,于是把html中的swf嵌入代码删除,再f5,ie运行正常,因此,必须是AS3的问题。AS3中能与JS冲突的唯有

flash.external.ExternalInterface

方法。查看了敞开给js的3个方法:

ExternalInterface.addCallback(‘play‘, player.play);ExternalInterface.addCallback(‘switch‘, con.change);ExternalInterface.addCallback(‘close‘, player.stop);

swtich的确是js的保留字,遂改之,相应改动后报错依然。

问题在哪呢?play或close是保留字或预留字吗?显然不是。于是又查看AS3中的其它代码,亦未发现问题。

最后抱着试一试的态度,把3个敞开方法一一改掉,最后成

ExternalInterface.addCallback(‘VPlay‘, player.play);ExternalInterface.addCallback(‘VSwitch‘, con.change);ExternalInterface.addCallback(‘VClose‘, player.stop);

Flash导出swf,再运行,结果ie竟然正常了。想不通为何。