2

我有一个需要 flash 9 的 swf,我正试图在它上面显示内容。为方便起见,我将 wmode 设置为透明。问题是,这仅在用户安装了 flash 10 时才有效,而且我真的不想要求 flash 10 来查看我正在处理的网站上的内容。当我用 flash 9 在 flash 内容上拉出一个 div 时,swf 会渗入或完全覆盖 div。

在不使 flash 10 成为用户要求的情况下,如何防止这种情况发生?

我正在使用 swfobject 嵌入 swf 和 jquery-ui 以在 flash 内容上显示 div。

编辑:

此故障行为仅在 Safari 中出现。

4

5 回答 5

3

wmode transparent 多年来一直是 Flash 的一部分,并且不仅限于 Flash Player 10。

无论如何,您不需要使用 wmode transparent;除非您确实需要 SWF 中的透明度,否则您应该使用 wmode opaque 代替。它的错误更少,并且使用更少的处理能力。

诀窍是还要确保您的 HTML 元素在 CSS 中具有“位置”。

尝试按照此处的示例和说明进行操作:http: //learnswfobject.com/advanced-topics/placing-html-elements-over-a-flash-movie/

于 2009-07-31T21:56:35.513 回答
2

我不确定这是否会对您本身有所帮助。但我使用以下方法通过 Flash 显示内容。

我前段时间遇到过这个问题。我要向用户显示一个用于在网站上注册的条款和条件的弹出窗口。弹出窗口没问题,但页面顶部有一个 Flash 电影,它隐藏了对话框的上部。经过测试并广泛使用的方法是将 Iframe 放置在您想要显示内容的位置,并绝对定位您的内容和 IFrame。例如,如果您想在 Flash 电影上方显示一个 div,则放置一个 IFrame,如下所示:

    <iframe style="position:absolute;top:250;left:150;"></iframe>

然后将 div 准确定位在此 iframe 上方,如:

    <div style="position:absolute;top:250;left:150;"></div>

我在页面上使用 jquery 来显示使用 ui.dialog 插件的对话框。在闲逛了一段时间后,我设计了以下简单的解决方案。

1) 将 id 属性放在电影元素上,以唯一标识电影对象。像,

<object id="movie1"></object>

2)在显示对话框(或其他相关内容)之前调用一个javascript函数来隐藏电影。像,

$("#movie1").css("display","none");

3) 现在显示对话框。像,

$("#dialog").dialog("open");

4) 关闭对话框后,再次播放电影。像,

  $("#dialog").dialog("close");
  $("#movie1").css("display","inline"); 
于 2009-09-06T15:54:42.867 回答
1

我无法提供可以解决问题的建议,因此我建议您可能希望避免该问题。

而不是在 z-index 中将 (x)html 内容覆盖在 flash 内容之上

+------------+
|            |
| +-------------+
| |   html      |
| |             |
| +-------------+
|   Flash    |
+------------+

不如将 (x)html 内容放在窗口中的 Flash 上方:

+------------+
|  html      |
|            |
+------------+
+------------+
|            |
| Flash      |
|            |
|            |
|            |
|            |
+------------+

这并不理想,但它至少提供了一个可行的解决方案,直到 Flash/html 可以更成功地共存。

于 2009-09-04T12:56:47.503 回答
-1

我在我的书签中找到了这个(它们来自 10 年前的时代)。虽然我现在没有任何 Flash Player 9 / Safari 来验证这一点。试一试。

浏览器的不同 WMode

正如 pipwerks 所说,WMode 应该控制它,但并非所有平台/浏览器都能正确处理它们。在那种情况下,我会认为这是 Safari 的/Flash9 故障,无法修复。

于 2009-09-04T12:37:05.217 回答
-1

尝试将 wmode 参数设置为不透明。当涉及到 Flash 时,这似乎解决了很多 HTML 层/深度问题。

于 2009-09-04T12:46:09.227 回答