通常,Flash和Flex应用程序使用object
和embed
标记的组合嵌入到HTML中,或者更常见地使用JavaScript。但是,如果您直接链接到SWF文件,它将在浏览器窗口中打开而不查看地址栏,您无法分辨它是否嵌入HTML中,其大小设置为100%宽度和高度。
考虑到嵌入Flash或Flex应用程序填充100%浏览器窗口所需的HTML,CSS和JavaScript的开销,直接链接到SWF文件的缺点是什么?有什么好处?
我可以想到一个好处和三个缺点:你不需要额外需要的100多行HTML,JavaScript和CSS,但你没有插件检测,没有版本检查,你失去了最好的SEO选项(渐进式增强)。
更新不会挂在100多行上,我只是意味着嵌入SWF所需的代码量相当多(我的意思是包括像SWFObject这样的库) ,它只是用于显示SWF,可以通过直接链接到它而无需一行。
答案 0 :(得分:7)
直接链接到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)
更多优势:
缺点: 与一般的弹出窗口一样,如果你要求来自同一站点的多个弹出窗口,并且你想要不同大小的弹出窗口,浏览器往往会简单地覆盖window.open中你要求的大小并重用任何东西。你需要关闭任何打开的弹出窗口,以便window.open进行全新的创建。它变得复杂,我无法让它在网站的各个页面上工作。任何成功完成此任务的人,请发布信息!
答案 6 :(得分:-1)
Adobe应该为自己的标准嵌入感到羞耻,这违背了约定优于配置的目的。检查^ swfobject(如上所述)或swfin