或者

通过SWFObject在HTML中插入Adobe Flash

作者:山里的苦丁 浏览:235 发布时间:2017-11-29
分享 评论 0

  SWFObject是一个用于在HTML中方便插入Adobe Flash媒体资源(*.swf文件)的独立、敏捷的JavaScript模块。该模块中的JavaScript脚本能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。它使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。此外,它能够避免您的 HTML、XHTML中出现object、embed等非标准标签,从而更加符合标准。


  一、简介


  SWFObject 2.0:


  提供两种优化的嵌入Flash Player的方法:一种基于标签的方法和一种依赖于JavaScript的方法。


  提供一套JavaScript API,目的是提供一套完整的工具来嵌入SWF


  SWFObject


  SWFObject


  文件和获得Flash Player的相关信息。[ http:// code. google. com/p/swfobject/wiki/SWFObject_2_0_api_javascript_dev ]


  只利用一个很小的JavaScript文件(size: 8.7Kb, GZIPed: 3.4Kb)。


  是SWFObject 1.5[ http:// blog. deconcept. com/swfobject/ ]和UFO [ http://www. bobbyvandersluis. com/ufo/ ]的继承者。


  将最终替代Adobe Flash Player Detection Kit [ http://www. adobe. com/products/flashplayer/download/detection_kit/ ]。


  准备整合所有已存在的Flash Player嵌入方法,并且为嵌入Adobe Flash Player内容提供一个新的标准。


  是一个由Geoff Stearns、 Michael Williams和 Bobby van der Sluis创建的开源项目,前身是SWFFix [ http://code. google. com/p/swffix/ ]。


  二、特点


  SWFObject 2.0:


  比任何其他的Flash Player嵌入方法更完善更灵活。


  为每个人都提供了一种解决方案:无论你是一个HTML、Flash或者JavaScript开发者,你都能从中发现适合你的东西。


  打破了使用浏览器专有标签的恶性循环,促进了web标准和替换内容(译者注:alternative content,指Flash内容无法正常显示时需要显示的内容,使用替换内容通常是因为Flash插件没有安装或者Flash插件版本过低)的使用。


  采用分离式的(unobtrusive)JavaScript和最合理的JavaScript实践。


  容易使用。


  三、JavaScript


  SWFObject 2.0主要使用JavaScript来解决一些仅依靠标签无法解决的问题;它:


  通过探测Flash Player的版本,来决定显示Flash内容还是替换内容,避免了过时的Flash插件影响Flash内容的正常显示。


  提供了恢复到替换内容的功能:当Flash内容因为过时的Flash Player而无法正常显示时,SWFObject通过DOM操作用替换内容代替Flash内容。(注意:如果Flash Player没有被安装,HTML object元素会自动被替换内容所替代。)


  提供了一个选择来使用Adobe Express Install下载最新版本的Flash Player。


  通过使用专有的embed元素的办法,解决了老版的Webkit引擎会忽略嵌套在object元素中的param元素的问题。(注意:这是唯一一个使用了专有HTML标签的地方,并且在今后的版本中会被逐步淘汰。)


  提供了一个详尽的JavaScript API来完成一些常见的与Flash Player和Flash内容相关的操作。


  4 . 我们应该使用静态发表还是动态发表的方法?


  SWFObject提供了两种不同的方法来嵌入Flash内容:


  静态发表方法用符合标准的标签来嵌入Flash内容和替换内容,并且用JavaScript来解决一些仅依靠标签无法解决的问题。


  动态发表方法基于用标准标签插入替换内容,如果浏览器安装了最低版本需求的Flash插件并且拥有足够的JavaScript支持,SWFObject会用JavaScript将替换内容替换成Flash内容(与以前版本的SWFObject以及UFO很相似)。


  静态发表方法的优势在于:


  促进了对符合标准标签的创作。(译者注:不太理解,原文是:The actual authoring of standards compliant markup is promoted.)


  插入Flash内容的机制不再依赖于JavaScript,所以你的Flash内容能有更多的受众。


  如果你安装了Flash插件,但是JavaScript被禁用了或者浏览器并不支持JavaScript,你仍然能够看到你的Flash内容。


  Flash将能够在那些对JavaScript支持较弱的设备上运行,例如Sony PSP。


  像RSS阅读器这样的自动化的工具能够读取Flash内容。


  动态发表方法的优势在于:


  它避免了通过点击激活的机制来激活Internet Explorer 6/7和Opera 9+中的Flash内容。值得注意的是微软正在逐步淘汰IE中的点击激活机制[ http://www. swffix. org/devblog/?p=19 ]。(译者注:Internet Explorer 6/7的点击激活机制已经在2008/4的更新中被移除)


  它能很好的与基于脚本的应用整合。