swfobject.js 详细解说

一直想对这个应用作个总结,今天偶然百度到这个效果,为此作个笔记。javascript

用这个js的好处:html

1.IE中没有讨厌的虚框问题了。
2.
提供了完善的版本检测功能,若是版本不够则显示其余东西,好比图片或文字。
3.
易于使用,只要在页面头加载一个 .js 文件,而后 HTML 写一个容器,里面放普通的文本或图片(用于没法显示 Flash 时显示),最后用脚原本替换这个元素里面的内容为 Flash
4.
使得插入Flash媒体资源尽可能简捷、安全。并且它是很是符合搜索引擎优化的原则的。
5.
可以避免HTMLXHTML中出现objectembed等非标准标签,从而符合更加标准。java

只须要包含 swfobject.js这个js文件,而后在DOM中插入一些简单的JS代码,就能嵌入Flash媒体资源了。下面是一个最简单的范例:浏览器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
< script type="text/javascript" src="swfobject.js"></ script >
< script type="text/javascript">
    var so = new SWFObject("movie.swf", "mymovie", "400", "100%", "8", "#336699");
    so.addParam("quality", "low");
    so.addParam("wmode", "transparent");
    so.addParam("salign", "t");
    so.addVariable("variable1", "value1");
    so.addVariable("variable2", "value2");
    so.addVariable("variable3", "value3");
    so.addVariable("variable1", getQueryParamValue("variable1"));
    so.addVariable("variable2", getQueryParamValue("variable2"));
    so.write("flashcontent");
</ script >

  

<div id="flashcontent">[...]</div>首先,咱们要为SWF资源预留一个HTML结点。这个HTML结点内的全部内容都会在客户端被Flash资源替换,当客户端没有安装Flash播放器的时候,这些内容会显示出来。这一特点在SEO以及对用户体验方面很是有必 要。安全

var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]);建立一个新的SWFObject实例,而且传入一下参数:优化

swf - SWF文件路径 
id - 您为这个SWF文件分配的id值,它将用于给embed与object标签设定name属性,以便于能够支持swliveconnect的功能,如动态传 入变量 
width - 宽度 
height - 高度 
version - FlashPlayer须要的版本号,它能够详细到 '主版本号.小版本号.细节',例如:"6.0.65"。通常地,咱们只需传入主版本便可,例如:"6"。 
background-color - Flash资源的背景色,16进制格式 
此外,还有以下可选参数:搜索引擎

quality - 画面质量,默认为"high"。 
xiRedirectUrl - 详见ExpressInstall相关 
redirectUrl - 没有安装相应版本的播放器后自动跳转的目标地址 
detectKey - 这是当忽略检测时,SWFObject将去url地址中查找的变量,默认值为“detectflash”,后续有详细介绍 
so.write("flashcontent");将Flash资源应用到DOM里,在浏览器显示出来。url

解释一下这些参数的做用:spa

   var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]);         //这段是SWFObject必须的基本参数,全部SWFObject都必须包含的。
   so.addParam("Param1", "Param2");   //这里是给Flash添加内联参数,能够实现诸如背景透明之类的效果。依照需求添加就能够了,参数和emded/object标签是同样的代码,下同。
   so.addParam("Param3", "Param4");
   so.addParam("Param5", "Param6");
   so.addVariable("variable1", "value1");    //这里是给Flash添加FlashVar,这是以FlashVar的方式给Flash的Root添加变量,对于Number型变量在Flash端须要 作类型转换。
   so.addVariable("variable2", "value2");
   so.addVariable("variable3", "value3");
   so.addVariable("variable1", getQueryParamValue("variable1"));   //Flash获取URL变量对于url?arg1=test1&arg2=test2这样用GET方式传递变量的URL,咱们能够用 getQueryParamValue方法来获取变量。
   so.addVariable("variable2", getQueryParamValue("variable2"));
   so.write("content");    //这里是相当重要的一个地方,他是用一段特定内容取代Flash没法显示时的内容。能够事先在CSS里定义好样式,在文档里使用div标签写出来。这里 在调用过来。code

相关文章
相关标签/搜索