转——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