swfobject是一个基于javascript的flash媒体版本检测与嵌入模块,其主要使用目的是让我们将flash嵌入网页中的操作更简单,加入了版本检测功能,符合xhtml的标准验证的插入,并解除了ie对flash点击激活的限制,对主流浏览器兼容。
首先让我们看一段swfobject作用的代码:
//载入swfobject类库
//设置一个div,并设置id,这个div将做为flash插入的容器
播放此动画需要flashplayre8.0+
//利用swfobject来插入flash
看了上面的代码感觉如何?比起平时用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);
官方地址:http://blog.deconcept.com/swfobject/