【问题标题】:Linking directly to a SWF, what are the downsides?直接链接到 SWF,有什么缺点?
【发布时间】:2010-09-08 09:55:52
【问题描述】:

通常,Flash 和 Flex 应用程序使用objectembed 标记的组合嵌入到 HTML 中,或者更常见的是使用 JavaScript。但是,如果您直接链接到 SWF 文件,它将在浏览器窗口中打开,而无需查看地址栏,您无法判断它没有嵌入到尺寸设置为 100% 宽度和高度的 HTML 中。

考虑到嵌入 Flash 或 Flex 应用程序 100% 填充浏览器窗口所需的 HTML、CSS 和 JavaScript 开销,直接链接到 SWF 文件的缺点是什么?有什么好处?

我能想到一个好处和三个坏处:您不需要 100 多行 HTML、JavaScript 和 CSS,而这些都是其他所需的,但是您没有插件检测,没有版本检查,并且您失去了最佳 SEO 选项(逐步增强)。

更新不要挂在 100 多行上,我只是说嵌入 SWF 所需的代码量相当多(我的意思是包括像 SWFObject 这样的库) , 只是为了显示SWF,直接链接就可以不用一行了。

【问题讨论】:

    标签: apache-flex flash embed


    【解决方案1】:

    更多优势:

    1. 看起来很轻,因为您可以使用似乎堆积在那里的所有工具栏摆脱标题,甚至不需要滚动条。当您试图在短时间内展示大量动作时,这会增强影响力。
    2. 最重要的是:您可以将它放在一个窗口中,您可以将其拖得更大或更小,并使影片变得越来越小。播放器将调整电影的大小以填满您拥有的窗口。这对于每个人都想放大以找到自己和他们的朋友的集体照片之类的东西非常有用。我已经为单帧 Flash 制作完成了此操作!

    缺点: 与一般的弹出窗口一样,如果您从同一个站点请求多个弹出窗口,并且想要不同大小的弹出窗口,浏览器往往会简单地覆盖您在 window.open 中请求的大小并重用任何内容。您需要关闭任何打开的弹出窗口,以便 window.open 重新创建。它变得复杂,我无法让它跨网站的页面工作。有谁成功过,请发帖!

    【讨论】:

      【解决方案2】:

      Adobe 应该为自己的标准嵌入感到羞耻,它违背了约定优于配置的原则。检查^swfobject(如上所述)或swfin

      【讨论】:

        【解决方案3】:

        直接链接到 SWF 文件的好处:

        • 访问速度更快
        • 在点击链接之前你就知道这是一部 Flash 电影
        • 跳过 html 和 js 文件(无论如何您都不会使用 CSS 来显示 100% Flash 电影)

        缺点:

        • 您几乎无法控制电影默认设置。
        • 您不能使用自定义背景颜色、透明度等。
        • 您不能使用 flashVars 从 HTML 向影片发送数据
        • 不能使用 fscommand 从电影到页面
        • 电影比例永远不会与用户窗口的纵横比相同
        • 您无法弥补浏览器的不竞争性(下一个新浏览器问世,您遇到了麻烦)
        • 没有搜索引擎优化
        • 没有页面标题,如果您希望人们正确添加书签,那就太糟糕了。
        • 没有插件信息、下载链接等
        • 如果您的 SWF 连接到外部数据源,您可能会遇到跨域问题。
        • 重命名 SWF 文件也会重命名链接。不利于版本控制。

        简而言之,对于复杂的应用程序 - 始终使用 HTML。对于简单的动画电影,您可以选择任何一种方式。

        【讨论】:

          【解决方案4】:

          我能想到的一个好处是能够在 SWF 的直接 URL 中指定 GET 参数,然后可以在 Flash 应用程序中使用这些参数(通过 Flex 中的 Application.application.parameters,不确定您将如何访问它们)闪光 CS3)。如果你有一个 HTML 包装器,当然也可以通过其他方式来实现,但这样工作量就更少了。

          【讨论】:

            【解决方案5】:

            根据我的经验,并非所有浏览器都能正确处理此问题。我不太确定为什么(或哪些浏览器),但我有时会错误地将这样的链接发送给客户,他们经常会感到困惑。我怀疑他们的浏览器会提示他们下载文件而不是正确显示它。

            【讨论】:

              【解决方案6】:

              您也会失去对 SWF 的外部控制。当它嵌入 HTML 时,您可以使用 javascript 与 SWF 进行通信。如果直接加载 SWF,这可能是不可能的。

              您的 100 多行报价对我来说似乎很高。 FlashDevelop 为嵌入 SWF 生成的 HTML 只有大约 35 行,包含一个 swfobject.js 文件。您不需要接触 js 文件,最多只需要以非常小的方式调整 HTML 就可以让它做您想做的事情。

              【讨论】:

                【解决方案7】:

                为什么需要 100 多行代码?使用swfobject 之类的东西可以减少很多(而且通常你不想手动进行插件检测等)。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2017-04-26
                  • 2023-04-06
                  • 2018-02-25
                  • 2018-11-27
                  • 2011-01-11
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-12-01
                  相关资源
                  最近更新 更多