转——flash的嵌入与读取
时间:2010-10-14 来源:rubyz
flash的嵌入与读取
嵌入:
关于flash嵌入页面这块由于ms的历史原因问题有点乱,根据以下两篇(1 ,2 )介绍有以下四种方式:
1.Adobe 官方
Html代码
- <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
- codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
- width="400" height="300" id="movie1">
- <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
- <embed src="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf" quality="high" width="400" height="300" name="movie"
- type="application/x-shockwave-flash"
- width="400" height="300"
- pluginspage="http://www.macromedia.com/go/getflashplayer"/>
- </object>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
width="400" height="300" id="movie1">
<param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
<embed src="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf" quality="high" width="400" height="300" name="movie"
type="application/x-shockwave-flash"
width="400" height="300"
pluginspage="http://www.macromedia.com/go/getflashplayer"/>
</object>
2.SWFObject 静态
Html代码
- <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
- width="400" height="300" id="movie2">
- <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
- <!--[if !IE]>-->
- <object type="application/x-shockwave-flash"
- data="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
- width="400" height="300">
- <!--<![endif]-->
- <a href="http://www.adobe.com/go/getflashplayer">
- <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"
- alt="Get Adobe Flash player"/>
- </a>
- <!--[if !IE]>-->
- </object>
- <!--<![endif]-->
- </object>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
width="400" height="300" id="movie2">
<param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
<!--[if !IE]>-->
<object type="application/x-shockwave-flash"
data="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
width="400" height="300">
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"
alt="Get Adobe Flash player"/>
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
3.代码最少
Html代码
- <object type="application/x-shockwave-flash"
- data="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
- width="400" height="300"
- id="movie3">
- <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
- <a href="go/getflashplayer">
- <img src="get_flash_player.gif" alt="Get Adobe Flash player"/>
- </a>
- </object>
<object type="application/x-shockwave-flash"
data="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
width="400" height="300"
id="movie3">
<param name="movie" value="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"/>
<a href="go/getflashplayer">
<img src="get_flash_player.gif" alt="Get Adobe Flash player"/>
</a>
</object>
4.单独使用 embed
Html代码
- <embed
- id="movie4"
- src="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
- quality="high" width="400" height="300" name="movie"
- type="application/x-shockwave-flash"
- pluginspage="http://www.macromedia.com/go/getflashplayer"/>
<embed
id="movie4"
src="http://img01.taobaocdn.com/tps/i1/T12MVIXfVNXXXXXXXX.swf"
quality="high" width="400" height="300" name="movie"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer"/>
其中单独使用 embed 不可取(太老式?关键是不支持 fallback content ),推荐是object 的方式。
读取:
若允许以上四种方式,要写一个能够读取flash url的通用工具函数,那就要全面考虑了:
1.当前元素是embed ,直接读取 src 即可。
2.当前元素是object ,data是 url,读取 data
3.当前元素是object,还有 name 为 movie 的param,读取该 param 的value。
4.当前元素下有嵌套的object或embed,依次处理。
另一方面 ie 下需要注意的是
1.ie 下取不到 object 内嵌套的 embed 元素。
2.当动态生成的flash尚未插入文档时,这时在ie下若通过 getElementsByTagName来获取所有的param元素,需要使用大写的 "PARAM" 参数.
原文地址:http://yiminghe.javaeye.com/blog/747744










