swfobject.js
最近看到了好几个Flash网站,head代码里都加载了一个swfobject.js,这个JS究 竟有什么作用呢?眼下正在做一个Web页面,说不定刚好可以派上用场。于是,好奇的搜索了一下。原来这是老外开发的,用于在HTML中方面插入Adobe Flash媒体资源(*.swf文件)的独立、敏捷的JavaScript模块,该模块中的JavaScript脚本能够自动检测PC、Mac机器上各种 主流浏览器对Flash插件的支持情况。目前最新的版本是2.2,这里可以下载最新版的SWFObject:
http://code.google.com/p/swfobject/
官方网址介绍
http://code.google.com/p/swfobject/wiki/documentation
用法:
html部分
<div id="swf1">......</div>
js部分
swfobject.embedSWF("test.swf", "swf1", "300", "120", "9.0.0",);
源码部分:
这是2.2中的源码。看参数就明白怎么使用了。
embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
....}
详解
首先需要了解object标签。
http://www.w3school.com.cn/tags/tag_object.asp
http://www.w3school.com.cn/tags/tag_param.asp
swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr
这些依次为,swf位置,html要替换成flash的元素的id,宽,高,flash版本,如果没有flash那就使用这个自动安装flash的文件 swfobject2.2源文件里有
flashvarsObj:这里是flashvars的值。这个常用来作为html与flash之间传递参数,本来是在params对象中的属性,由于考虑到常用和方便,所以单独取了出来。可以设置为null。然后在param中写。
param对象的属性:
详细的介绍http://kb2.adobe.com/cps/127/tn_12701.html
play,loop,menu,quality,scale,salign,bgcolor,base,swliveconnect,flahvars,devicefont ,allowscriptaccess ,seamlesstabbing ,allowfullscreen ,allownetworking
wmode 这个很重要,window,opaque,transparent(一般设为
transparent
透明或者opaque不透明)。当不设置时默认为window,这时已窗口方式呈现。这时object元素将始终显示在最上面,同时点击事件等也监听不到。
attributes对象的属性:id,name,styleclass(不使用class,因为class也是ECMA4的保留关键字),align
callbackFn:回调函数
使用演示
演示1
swfobject.embedSWF( "test6_flashvars.swf" , "content5" , "300" , "120" , "6.0.0" , "expressInstall.swf" , {name1: "hello" ,name2: "world" ,name3: "foobar" }, {menu: "false" }, {id: "dynamicContent5" ,name: "dynamicContent5" });
|
演示2
var flashvars = {
|
name1: "hello" ,
|
name2: "world" ,
|
name3: "foobar"
|
};
|
var params = {
|
menu: "false"
|
};
|
var attributes = {
|
id: "dynamicContent2" ,
|
name: "dynamicContent2"
|
};
|
swfobject.embedSWF( "test6_flashvars.swf" , "content2" , "300" , "120" , "6.0.0" , "expressInstall.swf" , flashvars, params, attributes);
|
演示3
var flashvars = {}; <br>flashvars.xmlPath = "data.xml" ; <br> var params = {}; <br>params.wmode = "transparent" ; <br> var attributes = {}; <br>swfobject.embedSWF( "xixi.swf" , "banner" , "960" , "250" , "9.0.0" , "expressInstall.swf" ,flashvars,params,attributes);<br>
|
演示4
swfobject.embedSWF( "gen_shu.swf" , "gen_swf1" , "180" , "105" , "9.0.0" , null , null ,{wmode: "transparent" }, null , function (){alert( "已加载成功flash" )});
|
js调用方法
http://code.google.com/p/swfobject/wiki/api
发现用它的好处多多啊:
1.IE中没有讨厌的虚框问题了。
2.提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。
3.易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。
4.使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。
5.能够避免HTML、XHTML中出现object、embed等非标准标签,从而符合更加标准。
只需要包含 swfobject.js这个js文件,然后在DOM中插入一些简单的JS代码,就能嵌入Flash媒体资源了。下面是一个最简单的范例:
<script type="text/javascript" src="swfobject.js"></script><div id="flashcontent">
This text is replaced by the Flash movie.
</div><script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
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里,在浏览器显示出来。
SWFObject在
<script type="text/javascript">
</script>
之间加入多个参数来实现各个效果,参数很多,但是实际只要一点点。我们可以看下这样的代码:
<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>
这段代码给出了SWFObject的常用参数:
var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]);so.addParam("Param1", "Param2");so.addParam("Param3", "Param4");so.addParam("Param5", "Param6");so.addVariable("variable1", "value1");so.addVariable("variable2", "value2");so.addVariable("variable3", "value3");so.addVariable("variable1", getQueryParamValue("variable1"));so.addVariable("variable2", getQueryParamValue("variable2"));so.write("content");
解释一下这些参数的作用:
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标签写出来。这里 在调用过来。
转载于:https://www.cnblogs.com/yefengmeander/archive/2012/12/07/2887542.html
swfobject.js相关推荐
- swfobject.js视频播放插件
在网页中经常会用到视频播放的功能,下面介绍一下swfobject.js的视频播放应用: html代码结构: <div id="video_content"></d ...
- swfobject.js 2.2简单使用方法
swfobject.js 2.2简单使用方法 官方网址介绍 http://code.google.com/p/swfobject/wiki/documentation 用法: html部分 <d ...
- SWFObject.js入门
SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块 原文:SWFObject: Javascript Flash Player detection and embed s ...
- swfobject.js 的用法
最近看到了好几个Flash网站,head代码里都加载了一个swfobject.js,这个JS究 竟有什么作用呢?眼下正在做一个Web页面,说不定刚好可以派上用场.于是,好奇的搜索了一下.原来这是老外开 ...
- 让swfobject.js 支持透明的flash
使用ofc时,用swfobject.js调用flash,遇到的基本问题就是flash会在浮动层之上,影响到整体功能. google了一下,发现swfobject.js并没有打算支持透明的flash,只 ...
- swfobject.js 2.2 使用方法
在网页中插入FLASH时总是要写一大堆控件代码,而swfobject可以大大简化这项工作,使用swfobject的好处: 1.IE中没有讨厌的虚框问题了. 2.提供了完善的版本检测功能,如果版本不够则 ...
- 关于swfobject.js详解
最近看到了好几个Flash网站,head代码里都加载了一个swfobject.js,这个JS究 竟有什么作用呢?眼下正在做一个Web页面,说不定刚好可以派上用场.于是,好奇的搜索了一下.原来这是老外开 ...
- swfobject.js 详细解说
央视也在使用.http://news.xmtv.cn/2013/11/20/ARTI1384945345418131.shtml <pid="mbreplace"style= ...
- swf用html怎么写,swfobject.js html中写入一个swf文件
最近看到了好几个Flash网站,head代码里都加载了一个swfobject.js,这个JS究 竟有什么作用呢?眼下正在做一个Web页面,说不定刚好可以派上用场.于是,好奇的搜索了一下.原来这是老外开 ...
- swfobject.js for flash 的使用(for swfobject 2.0)
如何判断flash的版本 var flashVersion = swfobject.getFlashPlayerVersion();var flash_file = "vchat.swf&q ...
最新文章
- java thread_Java(多线程Thread)
- mac mysql5.7.9 dmg_Mac 安装 mysql5.7
- redisb并发访问慢出现的问题
- AVB2 avbtool.py脚本常用命令
- 项目经理应如何调动员工的积极性
- 13个非常实用的JavaScript小技巧
- 你想让自己的产品像病毒一样疯传吗
- 凸优化第六章逼近与拟合 6.3正则化逼近
- 读书笔记:《浪潮之巅》
- virtualbox虚拟机下的cdlinux找不到无线网卡的解决方法
- 【MATLAB】机器学习:线性判别分析LDA
- 笔记本电脑(PC)序列号查询
- 【微信小程序】(一)创建项目与前端编写
- linux 网络速度非常慢,Linux认证:解决ubuntu8.10上网速度慢的问题
- 百度商桥修改服务器,百度商桥在线客服设置的操作步骤
- 图像金字塔与图像融合——OpenCv库
- 通过 irp 请求包删除文件
- 什么是抽象工厂模式?
- 最大后验概率(MAP)- maximum a posteriori(转载)
- 笔记本液晶屏改装显示器
热门文章
- 在C#中用一个按钮控制斑马zebra条码打印机进行打印
- 一、Rose HA切换时自动启动服务
- python 循环语句s =2+22+222+2222之和_python基础2
- 教你几招提高自媒体文章原创度
- matlab中怎么计算信噪比,如何计算通信中的信噪比SNR
- python信噪比signaltonoise, SNR
- 原生js用ajax上传图片,关于js ajax上传图片
- 嵌入式C语言编程中经验教训总结(一) 详解const、static和volatile
- 计算机office基础知识题库,计算机一级MS Office基础考试题库
- 日志查找常用命令-超实用