2008-09-10 66 views
8

通常,Flash和Flex应用程序通过使用objectembed标记或更常用JavaScript的组合嵌入在HTML中。但是,如果直接链接到SWF文件,它将在浏览器窗口中打开,并且不会查看地址栏中的内容,但无法判断它是否未嵌入HTML,其大小设置为100%宽度和高度。直接链接到SWF,有什么缺点?

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

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

更新不要挂在100多行上,我只是表示嵌入SWF所需的代码量非常多(我的意思是包括像SWFObject这样的库),它只是用于显示SWF,这可以通过直接链接到一行来完成。

回答

7

上升空间直接链接到SWF文件:

  • 更快地访问
  • 你知道这是你点击链接
  • 跳过HTML & js文件上甚至之前(你不会的Flash影片使用CSS来显示反正100%flash动画)

缺点:

  • 你对电影的默认值没有什么控制。
  • 您不能使用自定义背景颜色,透明度等。
  • 不能使用Flash变量将数据从HTML发送到电影
  • 无法从电影使用fscommand页面
  • 电影比例是绝不相同的用户窗口的长宽比
  • 你无法弥补浏览器的不兼容性(下一个新的浏览器出来,你有麻烦)
  • 没有搜索引擎优化
  • 没有页面标题,如果你想让人们正确书签不好。
  • 无插件信息,下载链接等
  • 如果您的SWF连接到外部数据源,则可能会出现跨域问题。
  • 重命名SWF文件也会重命名该链接。版本控制不好。

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

0

为什么你需要100多行代码?使用诸如swfobject之类的东西可以减少相当一部分(并且通常你不想手动执行插件检测等)。

3

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

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

3

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

1

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

-1

Adob​​e应该为标准嵌入而感到羞耻,这违背了常规的配置。检查^ swfobject的(如上所述)或swfin

0

更多的优点:

  1. 重量轻的样子,因为你可以使用所有的工具栏,似乎积聚在那里,甚至滚动条是摆脱头部的不需要。当您试图在短时间内显示大量动作时,这会增强影响力。
  2. The biggie:你把它放在一个窗口中,你可以拖大或小,使电影变得越来越小。玩家将调整电影大小以填满您拥有的窗口。对于每个人都想放大查找自己和朋友的合影照片,这非常棒。我已经完成了一帧Flash制作!

缺点: 与通常的弹出窗口,如果你所要求的来自同一个站点多者,并且希望不同大小的弹出窗口,浏览器往往会简单地覆盖您在window.open要求的尺寸和重新使用它。你需要关闭任何打开的弹出窗口,这样window.open会做一个新的创建。它变得复杂了,我一直无法让它在网站上的各个页面上工作。任何成功的人,请张贴如何!