因为微软改变了IE对ACtiveX控制的处理方式,所以对嵌入到网页中的active控件的处理方式,需要点击激活后,才能正常使用,这对浏览flash效果很不方便,怎么样解除这种限制呢,可以利用swfobject对象,这是个js,文件,点击从这里下载: [FONT-SIZE=4] http://www.esnips.com/doc/ac36422b-8a55-48a2-a0cf-8ab76cd57dae/swfobject
下面是使用说明,一定要把js文件也要上传到你的flash空间!!
SWFObject是一个基于Javascript的Flash媒体版本检测与嵌入模块,其主要使用目的是让我们将FLASH嵌入网页中的操作更简单,加入了版本检测功能,符合XHTML的标准验证的插入,并解除了IE对FLASH点击激活的限制,对主流浏览器兼容。
首先让我们看一段SWFObject作用的代码:
| //载入SWFObject类库 <script type="text/javascript" src="swfobject.js" mce_src="swfobject.js"></script> //设置一个DIV,并设置ID,这个DIV将做为FLASH插入的容器 <div id="flashcontent">播放此动画需要FlashPlayre8.0+ </div> //利用SWFObject来插入FLASH <script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699"); //将id为flashcontent的DIV中内容替换为FLASH so.write("flashcontent"); </script> |
看了上面的代码感觉如何?比起平时用Object来插入FLASH文件是不是简洁多了,而且代码结构更清晰,对这段代码的中文解释可参看AW对SWFObject的翻译,已经很详细了,不再赘述,下面只介绍一下个人认为最实用的功能。
一、版本检测
难免存在播放器版本过低的用户,而且他们大多数是低端用户,对电脑知识了解较浅, 如果他们看不到我们所指出的FLASH动画,或者是由于播放器版本不支持新版本中的某些特性,用户看到的是残缺的动画,那么这就是一个糟糕的用户体验,用 户很容易将一切因素都归咎于产品的开发者。实用SWFObject就可以很好的避免这一麻烦,当它检测到用户的播放器版本低于我们设置的版本时, FLASH不会替换DIV容器中的内容,因此我们可以在这里给用户提示,例如:“你需要升级FLASH播放器版本至8.0+”。如果条件允许,我们可以在这里给用户一个Adobe的FlashPlayer的升级链接或者直接提供一个Active安装包给用户下载安装。
二、对FlashVars的支持
| so.addVariable("arg1","test1")); so.addVariable("arg2","test2")); |
上面两句代码将以FlashVars的方式给FLASH的ROOT中添加两个变量arg1=test1,arg2=test2,简洁,方便,同时不用我们再考虑IE和FF的兼容问题。
注意:JS跟FLASH通信是以字符串传递的,因此对于Number型变量FLASH端需要做类型转换。
三、设置FLASH内联参数
| so.addParam("wmode", "transparent"); |
这是我们很熟悉的设置FLASH背景透明的代码,其他内联属性可以尝试设置一下。
四、获取URL中的变量
对于url?arg1=test1&arg2=test2这样用GET方式传递变量的URL,我们可以用getQueryParamValue方法来获取变量。
| var t1 = getQueryParamValue("arg1"); alert(t1); |