兼容火狐ie 在html中给.swf传递参数

来源:互联网 发布:淘宝客网站怎么建 编辑:程序博客网 时间:2024/06/10 07:42
 

原来的flash是一个动态效果很好,但是图片内容、文字内容都是写在flash里面的,交互性不好,在改起来比较麻烦,所以想改成在html可以传参到.swf里面,动态更改flash 里面的内容。

探索过程如下:

1.我要在flash内部调用的html传进的参数

改变文字内容时,先将静态文本改为动态文本,然后加入as代码 we_ser.text=_root.we_ser;

改变图片内容时,先将图片转换为影片剪辑,然后加入as 代码loadMovie( _root.pic,_root);

2.我要在html中给.swf传参

最初代码如下:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="../../../download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="766" height="374">
<param name="flashVars" value="companyname=产品设计&we_ser=best service and best compangs">
<param name="movie" value="as2.swf" >
<param name="quality" value="high">
<embed src="as2.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="766" height="374">
</embed>
</object>

这段代码加到html中,将flash生成的.swf文件放到与html同目录下,用ie浏览器访问页面,页面显示正常,

flash效果显示很好,内容图片都随着html传进的参数改变。但在火狐浏览器下传进的参数不能在页面上

正常显示,why?本人处于莫名其妙当中,后来广发英雄帖Frusop大哥热心指点,才知道在除ie浏览器外

,其他浏览器只识别<embed></embed>里的东西。于是更改代码如下:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="../../../download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="766" height="374">
<param name="flashVars" value="companyname=产品设计&we_ser=best service and best compangs">
<param name="movie" value="as2.swf" >
<param name="quality" value="high">
<embed src="as2.swf?companyname=产品设计&we_ser=best service and best compangs" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="766" height="374">
</embed>
</object>

这次火狐终于给了面子可以显示我通过html传入的内容,但新的问题又出现了,火狐中页面将html传入的文

字显示为乱码,这应该是页面编码问题,又经过Frusop大哥的指点可能as中要加入一条

System.useCodepage = true;来定义flash中的内容使用页面编码,我将词条语句加入到as文件中,但乱码

问题依然存在,看了没有找到问题的根源,仔细观察了下<param>部分代码跟<embed>中的代码,灵机

一动将代码改为了

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="../../../download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="766" height="374">
<param name="flashVars" value="companyname=产品设计&we_ser=best service and best compangs">
<param name="movie" value="as2.swf" >
<param name="quality" value="high">
<embed src="as2.swf" flashVars="companyname=产品设计&we_ser=best service and best compangs" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="766" height="374">
</embed>
</object>

面对这么正确的代码,火狐终于低头了,火狐ie浏览器中,页面都显示正常,嘿嘿!在这再次感谢江湖救急

时热心的各位,将学到的这些分享与大家,希望有人会用的上。