一直想对这个应用做个总结,今天偶然百度到这个效果,为此做个笔记。 用这个js的好处: 1.IE中没有讨厌的虚框问题了。 2.提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。 3.易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。 4.使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。 5.能够避免HTML、XHTML中出现object、embed等非标准标签,从而符合更加标准。 只需要包含 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里,在浏览器显示出来。 解释一下这些参数的作用: 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标签写出来。这里
在调用过来。 ========================================= 焦点图示例: <script type="text/javascript"> |
|
|
|
| if(top.window.location.href != window.location.href) |
| { |
| top.window.location.href = window.location.href |
| } |
|
|
| /*动态嵌入方法不适用ExternalInterface.addCallback方*/ |
| var flashvars_focus = { |
| |
| <!--index_xwzx--> |
| pic0:"/docs/xwzx/2013-07-17/img/1374024016933.jpg",link0:"http://www.//docs/zxdt/2013-07-17/1374023702642.html",title0:"北京海外学人中心举办《外国人永久居留证》政策说明会", |
| pic1:"/docs/xwzx/2013-07-08/img/1373272641459.jpg",link1:"http://www.//docs/zxdt/2013-07-08/1373269308002.html",title1:"北京海外高层次人才京郊行首站延庆交流活动举行", |
| pic2:"/docs/xwzx/2013-07-08/img/1373333469575.jpg",link2:"http://www.//docs/zxdt/2013-07-08/1373265378624.html",title2:"北京海外学人中心分中心培训班成功举办", |
| pic3:"/docs/xwzx/2013-06-27/img/1372312575224.jpg",link3:"http://www.//docs/zxdt/2013-06-27/1372311533969.html",title3:"北京海外学人中心副主任赵峰带队到京津科技谷考察", |
| picNumber:"4",<!--index_xwzx--> |
| myTimer:3 |
| }; |
| var params_focus = { |
| wmode:"transparent" |
| }; |
| var attributes_focus = { |
| id: "focusIndex", |
| name: "focusFlash" |
| }; |
| swfobject.embedSWF("images/focusPic.swf", "focus", "384", "236", "9.0.0","expressInstall.swf", flashvars_focus, params_focus, attributes_focus); |
| </script> |
|
|
<!--焦点图 --> |
|
| <div class="focus_box"> |
| <div id="focus"></div> |
| </div> |
|