直接链接到SWF,有哪些缺点?

时间:2008-09-10 13:09:32

标签: flex flash embed

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

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

我可以想到一个好处和三个缺点:你不需要额外需要的100多行HTML,JavaScript和CSS,但你没有插件检测,没有版本检查,你失去了最好的SEO选项(渐进式增强)。

更新不会挂在100多行上,我只是意味着嵌入SWF所需的代码量相当多(我的意思是包括像SWFObject这样的库) ,它只是用于显示SWF,可以通过直接链接到它而无需一行。

7 个答案:

答案 0 :(得分:7)

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

  • 访问速度更快
  • 您甚至在点击链接
  • 之前就知道这是一部flash电影
  • 跳过html& js文件(你不会使用CSS来显示100%的flash电影)

缺点:

  • 您无法控制电影默认设置。
  • 您不能使用自定义背景颜色,透明度等。
  • 您不能使用flashVars从HTML
  • 向影片发送数据
  • 无法使用电影中的fscommand到页面
  • 电影比例永远不会与用户窗口的宽高比相同
  • 你无法弥补浏览器无法比拟的问题(下一个新的浏览器问世,你遇到了麻烦)
  • 没有SEO
  • 没有页面标题,如果您希望人们正确加入书签,那就太糟糕了。
  • 没有插件信息,下载链接等。
  • 如果您的SWF连接到外部数据源,则可能存在跨域问题。
  • 重命名SWF文件也将重命名该链接。版本控制不好。

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

答案 1 :(得分:3)

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

你的100多行引用对我来说似乎很高。 FlashDevelop为嵌入SWF生成的HTML只有大约35行,包含一个swfobject.js文件。您不需要触摸js文件,并且最多只需要以非常小的方式调整HTML以使其按照您的需要进行操作。

答案 2 :(得分:3)

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

为什么需要100多行代码?使用像swfobject这样的东西可以减少一些(通常你不想手动进行插件检测等)。

答案 5 :(得分:0)

更多优势:

  1. 轻量级的外观因为你可以摆脱所有工具栏似乎在那里积累的标题,甚至不需要滚动条。当您尝试在短时间内显示大量动作时,这会增强影响。
  2. 大佬:你可以在一个可以拖得更大或更小的窗口中得到它,让电影越来越大。播放器将调整电影大小以填充您拥有的窗口。这对于团体照片这样的事情来说非常棒,每个人都希望放大以找到自己和朋友。我已经为一帧Flash制作做了这个!
  3. 缺点: 与一般的弹出窗口一样,如果你要求来自同一站点的多个弹出窗口,并且你想要不同大小的弹出窗口,浏览器往往会简单地覆盖window.open中你要求的大小并重用任何东西。你需要关闭任何打开的弹出窗口,以便window.open进行全新的创建。它变得复杂,我无法让它在网站的各个页面上工作。任何成功完成此任务的人,请发布信息!

答案 6 :(得分:-1)

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