【问题标题】:Is there any good reason to favor swfobject.js over HTML tags?是否有充分的理由支持 swfobject.js 而不是 HTML 标签?
【发布时间】:2026-01-21 09:10:01
【问题描述】:

我有将 Flash 嵌入 HTML 的想法。我想支持快速乐观加载,而不是防御人们没有安装足够高版本的小情况。 我认为这可以缩短加载时间,因为 flash 对象现在可以在 DOM 阶段开始加载。 假设我要定位的 Flash 版本是 10.1。

版本优化 Flash 加载:

  1. 嵌入您想要的 Flash 作为 HTML 标记
  2. 之后,用 Javascript 检查实际的 flash 版本

A.如果安装的版本足够,继续。

B.如果版本不符合要求的版本,扔掉之前嵌入的对象,嵌入快速安装。

我的问题:
是否有充分的理由支持整个 swfobject 加载而不是这种方法?

【问题讨论】:

  • SWFObject 最初的出现不仅仅是为了版本检测,而是为了摆脱烦人的“点击激活”功能。一个很好的理由是:如果版本不正确,请避免加载 Flash 剪辑,因为您必须在快速安装完成后再次加载它。如果下载未完成,则不会缓存,因此您最多会浪费 Flash 文件大小的 99% 的带宽。

标签: flash embed swfobject


【解决方案1】:

SWFObject 包括一个静态发布选项。您可以使用标记嵌入 SWF 并完全避免 JavaScript,就像您描述的那样。默认情况下,SWFObject 的静态发布方法使用 Flash Player 检测来确保您拥有指定的最低版本。如果不是,它会从标记中去除 <object> 标记并改为显示回退内容(或调用 ExpressInstall,如果合适)。

SWFObject 的静态发布在这里有更详细的解释:

【讨论】:

  • 我现在已经实现了,就在 learnswfobject.com 的出色描述之后。使用正确 Flash 版本的系统实际上可以减少加载时间!