直接链接到SWF,有什么弊端?
通常,Flash和Flex应用程序是使用object标记和embed标记的组合嵌入HTML中的,或者更常见的是使用JavaScript。但是,如果直接链接到SWF文件,该文件将在浏览器窗口中打开,而无需在地址栏中查看,则无法确定该文件未嵌入HTML且其大小设置为宽度和高度的100%。
考虑到嵌入Flash或者Flex应用程序以填充浏览器窗口100%所需的HTML,CSS和JavaScript的开销,直接链接到SWF文件的不利之处是什么?有什么好处?
我可以想到一个缺点和三个缺点:我们不需要100余行否则不需要的HTML,JavaScript和CSS,但是我们没有插件检测,没有版本检查并且失去了最佳SEO选项(渐进式增强)。
Update不会挂在100多个行上,我只是说嵌入SWF所需的代码量很多(而且我的意思是包括SWFObject之类的库),而这只是为了显示SWF,可以通过直接链接到一行而无需一行。
解决方案
回答
为什么我们需要100多行代码?使用诸如swfobject之类的东西可以大大减少这种消耗(通常,我们还是不想手动进行插件检测等)。
回答
我们还将失去对SWF的外部控制。如果将其嵌入HTML中,则可以使用javascript与SWF进行通信。如果直接加载SWF,则可能无法执行。
100多行报价对我来说似乎很高。 FlashDevelop生成的用于嵌入SWF的HTML大约只有35行,其中包含一个swfobject.js文件。我们无需触摸js文件,并且最多只需以非常小的方式调整HTML,即可使其执行所需的操作。
回答
以我的经验,并非所有浏览器都能正确处理此问题。我不确定为什么(或者使用哪种浏览器),但有时我会错误地将这样的链接发送给客户,而他们常常会感到困惑。我怀疑他们的浏览器会提示他们下载文件,而不是正确显示文件。
回答
我可以想到的一个好处是,可以在指向SWF的直接URL中指定GET参数,然后在Flash应用程序中就可以使用该参数(通过Flex中的" Application.application.parameters",不知道如何访问它们)在Flash CS3中)。如果我们有HTML包装器,当然也可以通过其他方法来实现,但是这样就省事了。
回答
直接链接到SWF文件的好处:
- 更快的访问
- 我们知道它是Flash电影,甚至在我们单击链接之前
- 跳过html和js文件(无论如何我们都不会使用CSS来显示100%Flash电影)
缺点:
- 我们对影片默认设置几乎没有控制权。
- 我们不能使用自定义背景色,透明度等。
- 我们不能使用flashVars将数据从HTML发送到电影
- 无法从电影到页面使用fscommand
- 电影比例永远不会与用户窗口的纵横比相同
- 我们无法补偿浏览器的竞争力(下一个新的浏览器问世,我们遇到了麻烦)
- 没有SEO
- 没有页面标题,如果我们希望人们正确地添加书签,那是很糟糕的。
- 没有插件信息,下载链接等。
- 如果SWF连接到外部数据源,则可能会遇到跨域问题。
- 重命名SWF文件也会重命名该链接。不利于版本控制。
简而言之,对于复杂的应用程序,请始终使用HTML。对于简单的动画电影,我们可以选择任何一种方式。
回答
Adobe应该为标准的嵌入感到羞耻,这打败了约定俗成的配置。检查^ swfobject(如上所述)或者swfin