我正在处理一个需要在单个页面上显示多个 Flash 电影的项目。该项目的目标是使用两个不同的 Flash 电影创建画中画效果。
我看到的仅有的两个选项是:
创建一个在其中嵌入两个外部 Flash swf 的新 Flash 电影。样式将通过 Flash 完成。
使用 html/css 将每个 Flash 电影嵌入页面和样式。
我的主要问题是关于内存优化。哪个效率更高并且占用更少的内存?
我正在处理一个需要在单个页面上显示多个 Flash 电影的项目。该项目的目标是使用两个不同的 Flash 电影创建画中画效果。
我看到的仅有的两个选项是:
创建一个在其中嵌入两个外部 Flash swf 的新 Flash 电影。样式将通过 Flash 完成。
使用 html/css 将每个 Flash 电影嵌入页面和样式。
我的主要问题是关于内存优化。哪个效率更高并且占用更少的内存?
用任何权威来回答这个问题都可能很困难。
但是,任何涉及在 HTML 页面中在 Flash 之上或之下分层的东西,比如上面的选项 #2,都需要您在页面上嵌入 SWF,其中 wmode 参数可能是错误的且性能较低(wmode="transparent"
或wmode="opaque"
)。
默认的 wmode 设置是“window”,这允许 Flash 对渲染做出假设,这应该是更优化的性能明智。更重要的是,非标准的 wmode 主要阻止 Flash 使用硬件加速(一些浏览器仍然可以像 IE9 或 Mac 上的 Safari 一样,因为它们有操作系统的支持)。
其他 wmode 中出现的错误因浏览器而异,但开发人员通常别无选择,只能使用它们。这些问题往往是微妙的,不是想惊动你。
在内存使用方面,它们很可能是相似的。无论您在页面上(或在其他浏览器选项卡/窗口中)有多少 SWF,它们都由同一个 Flash 进程运行。
如果您正在使用视频或 Stage3D 做任何事情,那么在 Flash 的顶部/下方分层通常不是一个好主意。Adobe的这篇文章有一个标题为“视频播放器和渲染优化”的部分,它提供了对性能问题的深入了解。它指的是“电视机顶盒”的非常受限的环境……同样的考虑也适用于我们有更多资源可玩的 PC。
并不是说要在 Flash 中完成所有工作。我在一两个网站上工作过,我们没有在 Flash 中完成所有工作(在视频上分层,等等),这并不是世界末日。