SWFObject的使用是非常简单的,只需要包含 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 的灵活性非常好。您完全可以事先写好HTML的其他部分,最后再回过头来添加Flash内容。这样可以确保在客户端没有Flash的情况下,用户不会一无所获;也可以确保针对搜索引擎,做了什么样的关键词优化。您完全不用像以前那样担心客户端的各种状况

SWFObject兼容当前各种主流浏览器,如:PC上的IE5/5.5/6, Netscape 7/8,Firefox, Mozilla, and Opera。Mac上的IE5.2, Safari, Firefox, Netscape 6/7, Mozilla, and Opera 7.5+,各种浏览器的后续版本也会继续支持

SWFObject检测Flash播放器版本从3开始到最新的版本号,而且也消灭了IE中“激活”的麻烦。这里有相关背景 。

SWFObject可以方便地检查版本细节,例如我们需要v.6.0 r65 (or 6,0,65,0) 来处理SWF资源,就可以添加如下代码:

var so = new SWFObject("movie.swf", "mymovie", "200", "100", "6.0.65", "#336699");

SWFObject的版本检测可以人工忽略。如果在特定环境下您不希望SWFObject检测版本号,那么只需要传递一个参数在HTML页面 中,就可以了。SWFObject可以捕获这个参数并且跳过检测,直接写入Flash嵌入代码到DOM中。用于忽略版本检测的变量名是 “detectflash”,以下是一个例子:

<a href="mypage.html?detectflash=false">Bypass link</a>

SWFObject 范例

以上我们接触到的范例都最基础的,接下来我们列举一些其他功能,尤其是传入参数、变量这些使用频率较高的行为。

传入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支持的内联参数列表:full list of the current parameters and their possible values (adobe.com官方资源)

采用"Flashvars"参数传入变量

用Flashvars是在预加载Flash时传入数据的最佳做法,语法格式与GET变量串非常类似,如:variable1=value1&variable2=value2&variable3=value3 SWFObject帮助您将这项工作变得更加明确化

<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内部进行通信。这里是一个采用SWFObject的应用程序,其中用到了location.hash 对象:链接地址

在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>

SWFObject 使用 范例版~~~相关推荐

  1. 《51单片机应用开发范例大全(第3版)》——第1章 单片机C语言开发基础

    本节书摘来异步社区<51单片机应用开发范例大全(第3版)>一书中的第1章,作者:张杰 , 宋戈 , 黄鹤松 , 员玉良,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  2. HTML5程序开发范例宝典 完整版 (韩旭等著) 中文pdf扫描版

    HTML5程序开发范例宝典紧密围绕编程者在编程中遇到的实际问题和开发中应该掌握的技术,全面介绍了利用HTML进行程序开发的各方面技术和技巧.全书共16章,内容包括HTML网页布局.HTML基本元素.H ...

  3. Magento教程 3:如何在Magento社群版(Community Edition)安装范例资料?

    上次教过大家如何安装Magento社群版 ,今天则要教您安装Magento社群版(Community Edition)范例资料,可借此设定参数,测试您所建立的Magento主题及功能是否完善. 准备好 ...

  4. Delphi 程序开发范例宝典(第2版)高清PDF下载 附光盘

    Delphi 程序开发范例宝典(第2版)高清PDF下载 附光盘 转载于:https://www.cnblogs.com/gavinhughhu/archive/2010/10/29/1864092.h ...

  5. C#程序开发范例宝典(第三版)(奋斗的小鸟)_PDF 电子书

    下载地址:http://pan.baidu.com/share/link?shareid=2755551085&uk=721744522  QQ:2864670220 内容简介 <软件工 ...

  6. python发明家_Python版多图表范例

    Python版多图表范例 Python版多图表范例 Author: 小小梦, Date: 2020-03-16 09:47:40 Tags: '''backtest start: 2019-01-22 ...

  7. pythonmacd指标编写_Python版MACD指标画图范例

    Python版MACD指标画图范例 Python版MACD指标画图范例 Author: 小小梦, Date: 2020-02-27 17:59:35 Tags: MACD Python 图表 '''b ...

  8. 我用rpgmaker mv制作插件版牧场游戏范例

    这次不是用RPGMAKER MZ来制作的,这次是插件版,分别是种植和钓鱼用到插件,还有也加了美观的MOG插件,所以看上去会好看好多. 这次我是用RPGMAKER MV来制作的,大家可以来看看,界面都做 ...

  9. c语言教学系统设计报告,C语言课程设计报告-范例Word版

    <C语言课程设计报告-范例Word版>由会员分享,可在线阅读,更多相关<C语言课程设计报告-范例Word版(21页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ...

最新文章

  1. Flutter开发之Android应用打包发布(22)
  2. javac和java命令的使用
  3. 无法显示验证码去掉html,如何去除验证码-模版风格-易通免费企业网站系统 - Powered by CmsEasy...
  4. C++之指针探究(七):void指针、空指针、野指针、各种零所代表的含义
  5. c#获取带有汉字的字符串长度
  6. Androidstudio 里面的app下目录介绍
  7. python爬虫登录正方教务管理系统获取成绩数据_「武汉理工大学教务处管理系统」Python爬虫初学(4)登陆武汉理工大学教务处并转到成绩管理 - seo实验室...
  8. 对账 java 龙果支付,龙果支付开源项目对账接口介绍
  9. 年薪120W的架构师简历你见过吗?java程序员该如何达到?
  10. 牛顿-莱布尼兹公式的几何意义-微分和积分的几何关系
  11. Python网络爬虫:利用正则表达式方法爬取‘’豆瓣读书‘’中‘’新书速递‘’条目
  12. Houdini 导出.ass文件
  13. log 的抓取与分析
  14. npm install 报node-sass错误
  15. App地推渠道归属:解决地推中存在的难题
  16. 学计算机的心理300字,心理作文300字10篇
  17. 计算机教育学校排名,教育知识:2020全国最好的计算机专业学校排名
  18. 突发!百度CEO李彦宏被当众泼了一瓶水
  19. 嵌入式数据库系统Berkeley DB
  20. NYIST 113 字符串替换

热门文章

  1. 邻接矩超详解(C/C++)
  2. 先说说什么是主数据和参考数据?
  3. Linux内存之Slab与slabtop命令
  4. 【CentOS8】网卡重启
  5. 为App签名(为apk签名)
  6. Anaconda安装及使用
  7. Mac端Python+Appium环境搭建
  8. frp代理工具流量分析
  9. 2019年第十届山东省acm省赛总结
  10. PuTTY 提示error错误 no supported authentication methods available (server sent: publickey)