css3技术

在WEB标准中嵌入Flash的最佳方法_div+css布局教程

字号+ 作者:H5之家 来源:H5之家 2015-09-28 19:06 我要评论( )

在WEB标准中嵌入Flash的最佳方法,学习在WEB标准中嵌入Flash的最佳方法,在WEB标准中嵌入Flash的最佳方法,查看在WEB标准中嵌入Flash的最佳方法,Flash 嵌入的问题论

Flash 嵌入的问题论坛中有人问了好多次,到底应该怎么用,为什么通不过验证,要通过验证怎么办等等等。
讨论中也出现了不少的误解,所以我单开一个帖总结一下我所知道的东西,不想看我罗嗦的直接跳到最后看结论就可以了。

一、传统的方法。
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="#version=7,0,0,0"
width="550" height="400" id="Untitled-1" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="mymovie.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550"
height="400" name="mymovie" align="middle" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash" pluginspage="" />
</object>
这方法是使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的,为什么这样做?为了浏览器兼容性,有的浏览器支持 object,有的支持 embed,这也是为什么要修改 Flash 的参数时两个地方都要改的原因。这种方法是 Macromedia 一直以来的官方方法,最大限度的保证了 Flash 的功能,没有兼容性问题。但是它现在不那么好用了:

  • 无法通过验证,由于为了兼容性而嵌入的 embed 标签是不符合 W3C 的规范的。当然,假如你不在乎什么规范不规范,另当别论。
  • 微软由于种种原因,在 sp2 后限制了 IE 的 ActiveX 的使用模式,就是在页面中的 ActiveX 有一个虚框,需要用户点击一次才能正常交互。Flash是作为一个 ActiveX 嵌入到网页中的,所以它也会受牵连,只有通过 JS 嵌入 Flash 才能解决这个问题。
  • 没有 Flash 版本检测,假如版本浏览器的flash插件版本不够,或者不能正常显示你的 swf 文件,或者会弹出一个 ActiveX 的确认安装的框——这个框对很多用户来说是很恐怖的。
  • 二、只用 object 的方法,这种方法的名字叫做 Flash satay,最早是2002年由 Drew McLellan 发表在 A List Apart 上,后来又经过了几次完善:
    <object type="application/x-shockwave-flash
    data="c.swf?path=movie.swf"
    width="400" height="300">
    <param name="movie"
    value="c.swf?path=movie.swf" />
    <img src="noflash.gif"
    width="200" height="100" alt="" />
    </object>
    这方法没 embed 了,可以通过验证,是标准的嵌入 Flash 的方法,浏览器兼容性也不错,看起来几乎完美,不过还是有问题的:

  • 还是有少数用户代理(比如一些版本的 safari 和一些屏幕阅读器)不认这种方式,有 bug。

  • 三、用JS嵌入的方法。
    用JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用 document.write 直接写,这法子说实话不大好,感觉 hack 成分多了,有点为了验证而验证的意思,而且没有体现出什么 JS 的优势。我觉得一个好的 JS 嵌入脚本,在保证 Flash 应有功能的基础上,要发挥 JS 的优势应该要有版本检测,要能很好解决可访问性问题(也就是用户在无法浏览 Flash 内容或禁用 JS 的时候应该如何处理的问题),要易于重复使用。
    我知道的比较常见的 JS 嵌入方法有以下几个

  • SWFObject
  • UFO - Unobtrusive Flash Objects
  • Macomedia(现在是Adobe了..)提供的脚本[这里]和[这里]。
  • 我 SWFObject 用的比较多,就挑它来说一些这种方法的优点:

  • 可以通过验证——当然这个不是重点,只是顺带效果罢了。

  • 四、我的结论。
    现阶段用 JS 嵌入 Flash 是最完美的方法,虽然这法子这也是由于浏览器的种种问题而作出的妥协。
    但它在保证 Flash 功能的前提下还利用 JS 提供了额外的好处,再者又已经有人写了很完善的嵌入脚本可以方面地下载使用(推荐 SWFObject),我们还有什么理由不用它呢?

    SWFObject 那网页是英文的,这里写个简单的用法教程:

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    网友点评