解决IE更新对网页中嵌套FLASH显示的影响

解决IE更新对网页中嵌套FLASH显示的影响

前一阵微软更新了 IE 浏览器,针对 IE 的更新,使 Active X内容不能自动载入,必须先激活方可使用.这些改变可以在 Adobe 的某些软件中看到 , 包括
flashplayer.
Authorware player,
shockwave Player,
SVG Viewer,
Help Center
Adobe Reader,

当然还有 Sun Java, Apple QuickTime, RealNetworks,RealPlayer 和其它的 ActiveX .

通过某些方法嵌入到 html 页面中的交互内容可能不能响应用户的输入 ( 例如 , 键盘 , 鼠标 )

直到用户点击要么激活要么继续

 

现在我们将使用 deconcept 的开源代码 flashObject 这里下载 Download FlashObject 1.3 来解决这个问题。

基本方法如下:

只需要将 flashobject.js 包含在你的 html 页面内,然后加上一点 javascript 代码嵌入 flash swf ok 了.
它的工作方式如下:

代码 :

<script type="text/javascript" src="flashobject.js"></script>
<div id="flashcontent">
This text is replaced by the Flash movie.
</div>
<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.write("flashcontent");
</script>



简单分析一下
1:
<div id="flashcontent">
This text is replaced by the Flash movie.
</div>


这一段相当于我们在为放置 flash 文件而准备的一个 holder. 有些象我们常用的空的 MovieClip holder. 为放入内容而准备的.如果你没有装 flashplayer. 那么里面的那行字会显示出来如显示为 ”This text is replaced by the Flash movie.” 如果你装了 flashplayer ,那这行字是不会显示的,用户基本上是看不到的,同时它还有一个好处是你可以把这行内容变成的你搜索关键字, google 会很容易搜到它的.呵呵,一举两得. 下面这段一看就知道是什么了.

2:
<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.write("flashcontent");
</script>


用来嵌入 swf, 比如当前的影片文件是 ”movie.swf”, id ”mymoive, 宽是 200, 高是 100,flashplayer 版本是 7, 背景色是 #336699.

下面我们来看一下我们嵌入一个 flash 的范例 .


根据上面的基本工作方式 , 我们还要嵌入一些其它的参数 . 来满足我们一些其它的需要

比如我们有一个文件名为 ws.swf, 我们想把它嵌入到页面中 , 又不至于受 IE 更新的影响 .

1.
在页面中包入 flashobject.js 文件
<script type="text/javascript" src="flashobject.js"></script>
一般这行代码可以写在 body 标签之前即可 .

2.
把下面这段代码加在它下方 .

代码 :
<div id="flashcontent" style="width: 300px; height: 200px"></div>
<script type="text/javascript">
var fo = new FlashObject("ws.swf", "mymovie", "300", "200px", "7", "#336699");
fo.addParam("quality", "low");
fo.addParam("wmode", "transparent");
fo.addParam("salign", "t");
fo.addParam("scale", "noscale");
fo.addParam("loop", "false");
fo.write("flashcontent");
</script>


从上面的代码中我们看出 , 我们将要把 FLASH 放在 id flashcontent 层中 , 它的宽为 300 高为 200 像素 , 那么应是和我们的 swf 文件的大小是相同的 . 如果你想缩放也可以是不同的 . 下面 var fo = new FlashObject("ws.swf", "mymovie", "300", "200px", "7", "#336699"); 是嵌入 flash 文件 , 在之前的内容已介绍过它里面的参数 , 其中的 ws.swf 可以是相对路径也可以是绝对路径 , 如你可以直接输入网站加上你的 swf 文件名字 .
在下面的一段就是我们可以加入的参数 , 从上到下分别为 quality 质量 ,wmode transparent 透明 ,salign 对齐 ,scale 缩放 ,loop 循环等 .
这样我们的嵌入过程就完成了 .

如果你想使用 flashVars 来进行 html flash 之前的通讯 , 使用 flashobject 也是很容易的 , 但有一点使用 flashobjcet 时只有在 swf 刚一载入时传递参数 . 并且是以值对的形式来传递 , 如下 :variable1=value1&variable2=value2&variable3=value3
使用方法如下 :
代码 :
<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.addVariable("variable1", "value1");
fo.addVariable("variable2", "value2");
fo.addVariable("variable3", "value3");
fo.write("flashcontent");
</script>


一旦这一步完成 , 那么所有的变量就已经传入到 flash, 你就可以灵活的在你的 flash 中的 _root 上使用了 .
deconcept flashObject
还提供了可以加入其它参数的说明.你可以详细查看

你可能感兴趣的:(解决IE更新对网页中嵌套FLASH显示的影响)