0

我已经在一个 Flash 游戏上工作了一个月,它应该可以在浏览器中玩(轻计算)。话虽这么说,我注意到在某些浏览器中,游戏的运行速度看起来像 15 fps(游戏应该以 80 fps 运行)。众所周知,这发生在 IE9 中,快速解决方法是将这一行添加到 html 的顶部:

<meta http-equiv="X-UA-Compatible" value="IE=9">

这是一个快速修复,它强制 IE 进入兼容模式并极大地提高了 fps(比方说大约...... 60)。

尽管如此,我相信游戏在每个浏览器中的运行速度都比它应该运行的慢,这在将 html 版本与 swf 进行比较时很明显。

游戏中的运动(html)“倾斜”也是相当明显的:这些倾斜损害了游戏的美感,因此损害了可玩性!

所有这一切让我相信浏览器限制了对计算机图形卡的访问;

1) html 慢,swf 快

2)声音以正常速度播放,但图形滞后

编辑

3) 游戏中的所有图形的分辨率都相当低(即,在游戏中显示为 width1xheight1 的图形是 width1xheight1 png's 的动画剪辑)+ 尽可能小

4) 我制作了非常(计算上)简单的 Flash 项目,并且看到了相同的图形移动问题。

谁能给我一些关于如何提高浏览器游戏流畅度的建议?

4

1 回答 1

1

这可能是 SWF 如何嵌入 HTML 页面的症状。Flash 支持多种“窗口模式”,这些“窗口模式”决定了内容如何呈现到浏览器窗口中。wmode当 SWF 嵌入 HTML 页面时,这是通过参数设置的。

根据Adob​​e 的文档,这应该设置为“直接”以获得最佳性能:

direct - 使用直接路径渲染。这会绕过屏幕缓冲区中的合成并将 SWF 内容直接呈现到屏幕上。建议使用此 wmode 值,以便为内容播放提供最佳性能,并启用使用 Stage Video 或 Stage 3D 的 SWF 内容的硬件加速演示。

在实践中,wmode可能会出现异常行为,因此尝试文档中提到的替代方案可能会有所帮助。

其他可能有助于提高性能的选项是:

  • 使用stage.scaleMode = StageScaleMode.NO_SCALE. 如果嵌入的大小与原始大小不匹配,这将防止内容被缩放。缩放会影响 CPU 使用率,因此禁用它应该会增加帧速率(请参阅StageScaleMode#NO_SCALE)。
  • opaqueBackground在非透明影片剪辑(例如根影片剪辑)上设置。透明度需要额外的计算才能将前景色与背景色相乘。设置不透明背景会绕过这些额外的计算,并可能会提高性能。(参见DisplayObject#opaqueBackground
于 2011-08-13T14:40:37.887 回答