css高级:flash嵌入

1,由flash创建的object/embed标签的标准集。缺点:他们与各种无效属性和元素在一起被加载,破坏文档对web标准的依从性, 因为embed是人生w3c规范没有的专有元素。

2,迂回解决方案:

1)Flash Satay方法:http://www.alistapart.com/articles/flashstay

将删除embed标签和一些object标签中不必要的专有属性。缺点:在IE/win中,在100%加载之前flash不能被启动。

该方案通过嵌入一个空的“容器”动画来欺骗IE,并用这个容器剪贴板来加载实际的内容,他的参数,高度,宽度等于真正的动画参数一致。这样,IE就能以流方式成功播放动画了,标签也得到验证,但是每个嵌入动画都需要一个容器,需要创建很多额外的垃圾目录。

以下内容为更新:

典型标记:

<object type="application/x-shockwave-flash"  data="your-flash-file.swf"  width="516" height="194">
 <param name="movie" value="your-flash-file.swf" />
 <param name="quality" value="high"/>
 <img src="image/tower.jpg" alt="your txet" width="516" height="194"/>
</object>

 object模块允许在第一个参数之后简单添加一个替换内容(若用户没有安装flash则会有一个替换内容。)。这对现代浏览器几乎都有效。

 服务器端的flash satay检测:

<object type="application/x-shockwave-flash"  data="your-flash-file.swf"  width="516" height="194">
  <!--#if expr="$(msie)"-->
  classid="classid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  <!--#endif--> <param name="movie" value="your-flash-file.swf" />
  <param name="quality" value="high"/> <img src="image/tower.jpg" alt="your txet" width="516" height="194"/>
</
object>

 

2)用js编写object/embed标签

仍保留object/embed标签,只是将它们移到一个外部js文件中,用document.write把flash内容写入到文档中。

在验证软件中http://validator.w3.org 可以看到js这个有效元素,看不到其中包含的flash的object/embed代码,成功跳过了o/b标签。

examle:http://www.pag.com/pagchampionship/2004/js/flash_home.js

在xhtml中的链接:

<script type="text/javascript" src="http://www.pag.com/pagchampionship/2004/js/flash_home.js"></script>

缺点:用户禁用js;每个动画都有一个外部js,过多导致崩溃。

3)SWFObject

目前最敏捷,最健壮的嵌入方法;友好的搜索引擎。

http://blog.deconcept.com/swfobject

 

 

 

笔记:来自于css web设计高级教程之美国职业高尔夫联盟锦标赛网站

http://www.pga.com/pgachampionship/2004/

下拉菜单: http://alistapart.com/article/dropdowns

posted @ 2013-11-13 20:06  sungoody  阅读(1181)  评论(0编辑  收藏  举报