SWFObject1.5: 基于Javascript的Flash媒体版本检测与嵌入模块(2)
作者:163CEO 来源:163 UED Team 时间:2009-08-06 18:02:00
三、范例:
1、传入Flash内联参数的简单范例
<script type=”text/javascript”>
var so = new SWFObject(”movie.swf”, “mymovie”, “200″, “100%”, “7″, “#336699″);
so.addParam(”quality”, “low”);
so.addParam(”wmode”, “transparent”);
so.addParam(”salign”, “t”);
so.write(”flashcontent”);
</script>
这里可以看到Flash支持的内联参数列表:http://kb2.adobe.com/cps/127/tn_12701.html(adobe.com官方资源)
2、采用“Flashvars”参数传入变量
用Flashvars是在预加载Flash时传入数据的最佳做法,语法格式与GET变量串非常类似,如:variable1=value1&variable2=value2&variable3=value3SWFObject帮助您将这项工作变得更加明确化
<script type=”text/javascript”>
var so = new SWFObject(”movie.swf”, “mymovie”, “200″, “100″, “7″, “#336699″);
so.addVariable(”variable1″, “value1″);
so.addVariable(”variable2″, “value2″);
so.addVariable(”variable3″, “value3″);
so.write(”flashcontent”);
</script>
这些变量将会保存在root这个MovieClip对象里。
SWFObject还可以方便地直接从URL中接受参数传入Flash中,例如你有这样一个URL:http://www.example.com/page.html?variable1=value1&variable2=value2。采用getQueryParamValue()方法你就可以轻松获取这些参数,并将它们传入Flash,例如:
<script type=”text/javascript”>
var so = new SWFObject(”movie.swf”, “mymovie”, “200″, “100″, “7″, “#336699″);
so.addVariable(”variable1″, getQueryParamValue(”variable1″));
so.addVariable(”variable2″, getQueryParamValue(”variable2″));
so.write(”flashcontent”);
</script>
getQueryParamValue()方法同样可以获取JavaScript的Location对象的hash值“location.hash”来与swf内部进行通信。
3、在SWFObject中应用Express Install(利用官方自动升级接口)
SWFObject全面支持AdobeFlash播放器的自动升级功能(从6.0.65起的FlashPlayer支持在swf内部自动升级!),这样用户完全不用离开网页就能完成播放器的升级了。
首先,上传官方的expressinstall.swf到服务器上,然后使用useExpressInstall方法指定这个swf文件的地址就可以了,例如:
<script type=”text/javascript”>
var so = new SWFObject(”movie.swf”, “mymovie”, “200″, “100″, “8″, “#336699″);
so.useExpressInstall(’expressinstall.swf’);
so.write(”flashcontent”);
</script>
可以安装一个低版本的Flash播放器然后测试效果;
在SWFObject原文件压缩包中可以找到具体的使用细节,可以自己定制ExpressInstall的流程。
如果Flash影片在弹出窗口中,或者希望用户在完成了ExpressInstall后重定向到其他地址,可以采用xiRedirectUrl属性,来自动完成这一步骤。例如:
<script type=”text/javascript”>
var so = new SWFObject(”movie.swf”, “mymovie”, “200″, “100″, “8″, “#336699″);
so.useExpressInstall(’expressinstall.swf’);
so.setAttribute(’xiRedirectUrl’, ‘http://www.example.com/upgradefinished.html’); // must be the absolute URL to your site
so.write(”flashcontent”);
</script>