借助 SWFObject 实现利用JavaScript嵌入 Flash

三、用JS嵌入的方法

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

  SWFObject  UFO - Unobtrusive Flash Objects  Macomedia(现在是Adobe了..)提供的脚本[]和[]。

  我 用SWFObject比较多,就挑它来说一些这种方法的优点:

  IE中没有讨厌的虚框问题了。  提供了完善的版本检测功能,如果版本不够则显示其他东西,比如图片或文字。  易于使用,只要在页面头加载一个 .js 文件,然后 HTML 写一个容器,里面放普通的文本或图片(用于无法显示 Flash 时显示),最后用脚本来替换这个元素里面的内容为 Flash。  可以通过验证——当然这个不是重点,只是顺带效果罢了。

  四、我的结论

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

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

  下载它的.js文件,在这里: (如果链接失效可能是版本有更新,请用上面给出的地址去主页下载最新版本)

  在你的 HTML 页面头部<head>区嵌入这个脚本文件:<script type="text/javascript" src="swfobject.js"></script>

  在你的 HTML 中写一个用来放 Flash 的容器,比如<div>,并随便给一个 id 比如 flashcontent。然后在里面放上你的替换内容。

<div >这里放替换内容,用来在 Flash 无法显示时显示。</div>

 

  使用脚本替换这个内容:

<script type="text/javascript">   var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");//参数意思: 地址,Flash 的 id(不是容器的 id),宽,高,版本需求,背景颜色//这是最基本的,如果你要高级的设置,就仔细翻翻说明吧。   so.write("flashcontent");</script>

 

  这个脚本可以写在 HTML 中也可以写在外部 .js 文件中。

166人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册