1. 一、传统的方法。
2. <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
3. codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
4. width="550" height="400" id="Untitled-1" align="middle">
5. <param name="allowScriptAccess" value="sameDomain" />
6. <param name="movie" value="mymovie.swf" />
7. <param name="quality" value="high" />
8. <param name="bgcolor" value="#ffffff" />
9. <embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550"
10. height="400" name="mymovie" align="middle" allowScriptAccess="sameDomain"
11. type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
12. </object>
1. 这方法是使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的,为什么这样做?为了浏览器兼容性,有的浏览器支持 object,有的支持 embed,这也是为什么要修改 Flash 的参数时两个地方都要改的原因。
2.
3. 二、只用 object 的方法,这种方法的名字叫做 Flash satay,最早是2002年由 Drew McLellan 发表在 A List Apart 上,后来又经过了几次完善:
4. <object type="application/x-shockwave-flash
5. data="c.swf?path=movie.swf"
6. width="400" height="300">
7. <param name="movie"
8. value="c.swf?path=movie.swf" />
9. <img src="noflash.gif"
10. width="200" height="100" alt="" />
11. </object>
12. 这方法没 embed 了,可以通过验证,是标准的嵌入 Flash 的方法,浏览器兼容性也不错,看起来几乎完美,不过还是有问题的:
13.
14. 需要一个 holder swf 来加载你的目标 swf 以保证 IE 中的 stream 能力,如果你需要通过 flashvars 来传参,或者和页面的 JS 交互,会很麻烦。
15.
16. 三、用JS嵌入的方法。
17. 用JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用 document.write 直接写,这法子说实话不大好,感觉 hack 成分多了,有点为了验证而验证的意思,而且没有体现出什么 JS 的优势。我觉得一个好的 JS 嵌入脚本,在保证 Flash 应有功能的基础上,要发挥 JS 的优势应该要有版本检测,要能很好解决可访问性问题(也就是用户在无法浏览 Flash 内容或禁用 JS 的时候应该如何处理的问题),要易于重复使用。
18. 我知道的比较常见的 JS 嵌入方法有以下几个
19.
20. SWFObject
21.
22. UFO - Unobtrusive Flash Objects
23.
24. Macomedia(现在是Adobe了..)
2. <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
3. codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
4. width="550" height="400" id="Untitled-1" align="middle">
5. <param name="allowScriptAccess" value="sameDomain" />
6. <param name="movie" value="mymovie.swf" />
7. <param name="quality" value="high" />
8. <param name="bgcolor" value="#ffffff" />
9. <embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550"
10. height="400" name="mymovie" align="middle" allowScriptAccess="sameDomain"
11. type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
12. </object>
1. 这方法是使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的,为什么这样做?为了浏览器兼容性,有的浏览器支持 object,有的支持 embed,这也是为什么要修改 Flash 的参数时两个地方都要改的原因。
2.
3. 二、只用 object 的方法,这种方法的名字叫做 Flash satay,最早是2002年由 Drew McLellan 发表在 A List Apart 上,后来又经过了几次完善:
4. <object type="application/x-shockwave-flash
5. data="c.swf?path=movie.swf"
6. width="400" height="300">
7. <param name="movie"
8. value="c.swf?path=movie.swf" />
9. <img src="noflash.gif"
10. width="200" height="100" alt="" />
11. </object>
12. 这方法没 embed 了,可以通过验证,是标准的嵌入 Flash 的方法,浏览器兼容性也不错,看起来几乎完美,不过还是有问题的:
13.
14. 需要一个 holder swf 来加载你的目标 swf 以保证 IE 中的 stream 能力,如果你需要通过 flashvars 来传参,或者和页面的 JS 交互,会很麻烦。
15.
16. 三、用JS嵌入的方法。
17. 用JS嵌入就是各有各的嵌入方法了,有嵌得好的有嵌得不好的。有人用 document.write 直接写,这法子说实话不大好,感觉 hack 成分多了,有点为了验证而验证的意思,而且没有体现出什么 JS 的优势。我觉得一个好的 JS 嵌入脚本,在保证 Flash 应有功能的基础上,要发挥 JS 的优势应该要有版本检测,要能很好解决可访问性问题(也就是用户在无法浏览 Flash 内容或禁用 JS 的时候应该如何处理的问题),要易于重复使用。
18. 我知道的比较常见的 JS 嵌入方法有以下几个
19.
20. SWFObject
21.
22. UFO - Unobtrusive Flash Objects
23.
24. Macomedia(现在是Adobe了..)