WMODE 和 Flash 视频 - 稳定性和性能

Posted

技术标签:

【中文标题】WMODE 和 Flash 视频 - 稳定性和性能【英文标题】:WMODE and Flash Video - stability and performance 【发布时间】:2011-05-25 23:16:05 【问题描述】:

出于商业原因,我需要过度使用带有 html 内容的 Flash 视频播放器。这需要将 WMODE 设置为“不透明”。

然而 Flash Player Engineering Tinic Uro 警告我们 lower performance 并且几年前他甚至提到了 serious instability 和 Adob​​e TechNote 15523 声明“仅在某些浏览器/Flash Player 版本组合上支持 WMODE 参数”。

此外,还有一大堆与 WMODE 选项直接相关的错误(在 Adobe Flash Player Bug and Issue Management System 中搜索“wmode”和“opaque”)

据我所知,甚至 YouTube 都试图不惜一切代价避免使用 WMODE“不透明”,只需查看展开视频上方的帐户下拉菜单的设计即可。

我的问题是:

您是否遇到过有关 Flash 视频和 WMODE“不透明”的性能下降、错误或不稳定的经历?你能分享关于这个主题的任何好读物吗?

【问题讨论】:

【参考方案1】:

是的,wmode opaque 会影响性能。 “透明”更糟糕。然而,

1) 它不像前一段时间那么糟糕(有时它根本不起作用)。

2) 最重要的是,性能影响仅在某些情况下。我遇到了两种不同的情况:a) 您的 SWF 的一部分正在重绘,而 SWF 的那部分(脏矩形)接近一些 HTML 内容。这会强制浏览器在每次重绘 SWF 部分时重绘 HTML 内容,从而损失性能;和 b) 用户事件,如鼠标在接近 HTML 内容的按钮上滚动也可能是一个问题......每次移动鼠标时浏览器似乎都会丢失几帧(以确定光标下方的内容,也许? ) 因此,如果您进行快速翻转(例如,需要 0.3 秒的时间),则很容易在您移动鼠标时注意到动画“滞后”并丢失一些帧。

重点是,如果您可以避免与 HTML 区域下方的动画内容交互的情况,或者如果您有时可以禁用 HTML 内容,则可以使用 opaque。

性能也因浏览器而异,所以一定要好好测试。

【讨论】:

很好的答案,还有一个问题:您是如何测试性能的?只是视觉上还是在任务栏中?有没有合适的测量方法? 有一些方法可以通过测量每秒渲染的帧数并查看它与目标帧率的比较来测试它,但我的测试主要是通过移动鼠标和感知动画速度来完成的。 SWF 渲染会在执行此操作时停止四分之一秒左右,而当 wmode 设置为默认值时不会停止,因此很容易得出 wmode=opaque 导致性能影响的结论。我还有 github.com/zeh/as3/blob/master/com/zehfernando/display/debug/… 以图形方式衡量性能。【参考方案2】:

我个人对此没有任何问题。但大多数网站似乎会在 Flash 内容顶部显示模式对话框等内容时隐藏 Flash 内容,并在关闭后再次显示。

我想补充:

将 WMODE 更改为 opacity 后,输入框中不能有特殊字符(冰岛语,如 þ、ð)。我不确定这是否是每个人的问题。

【讨论】:

我认为特殊字符问题是一个已知问题——我在某处看到过它。只有 FireFox,对吗?

以上是关于WMODE 和 Flash 视频 - 稳定性和性能的主要内容,如果未能解决你的问题,请参考以下文章

flash wmode参数详解

firefox flash wmode 直接 z-index 透明背景

flash视频嵌入

调用 facebook 对话框后 Flash (wmode=window) 消失

将任意 Flash 对象 wmode 更改为透明

Firefox 3.5.3 Windows + Flash + swfobject wmode问题