我有一个需要flash 9的swf,我正试图在其上显示内容。为了实现这一点,我将wmode设置为透明。问题是,这仅在用户安装了Flash 10时才有效,而且我真的不想要Flash 10来查看我正在处理的网站上的内容。当我用闪光灯9在闪光内容上拉一个div时,swf会流入或完全覆盖div。
如何在不将Flash 10作为用户要求的情况下防止这种情况发生?
我正在使用swfobject嵌入swf和jquery-ui来显示flash内容的div。
编辑:
此故障行为仅在Safari中注明。
答案 0 :(得分:3)
wmode transparent已成为Flash的一部分多年,并不仅限于Flash Player 10.
无论如何,你不需要使用wmode透明;除非你真的需要SWF中的透明度,否则你应该使用wmode opaque。它的错误越来越少,处理能力越来越低。
诀窍是确保您的HTML元素在CSS中具有“位置”。
尝试按照以下示例和说明操作: http://learnswfobject.com/advanced-topics/placing-html-elements-over-a-flash-movie/
答案 1 :(得分:2)
我不确定这对你本身是否有帮助。但我已经使用以下方法在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属性放在movie元素上以唯一地标识电影对象。像,
<object id="movie1"></object>
2)在显示对话框(或其他内容)之前调用javascript函数来隐藏电影。像,
$("#movie1").css("display","none");
3)现在显示对话框。像,
$("#dialog").dialog("open");
4)关闭对话框后,再次显示电影。像,
$("#dialog").dialog("close");
$("#movie1").css("display","inline");
答案 2 :(得分:1)
我不能提供可以解决问题的建议,所以我建议你可能想要避免这个问题。
而不是将(x)html内容覆盖在z-index
中的flash内容上+------------+
| |
| +-------------+
| | html |
| | |
| +-------------+
| Flash |
+------------+
如何将(x)html内容放在窗口中的Flash上方
+------------+
| html |
| |
+------------+
+------------+
| |
| Flash |
| |
| |
| |
| |
+------------+
这不是理想的,但它至少提供了一个可行的解决方案,直到Flash / html可以更成功地共存。
答案 3 :(得分:-1)
我在书签中发现了这一点(它们来自10年前的时代)。虽然我现在没有任何Flash Player 9 / Safari来验证这一点。试一试。
正如pipwerks所说,WMode应该控制它,但并非所有平台/浏览器都能正确处理它们。在这种情况下,我会认为这是Safari的/ Flash9故障而且无法修复。
答案 4 :(得分:-1)
尝试将wmode参数设置为opaque。当涉及到Flash时,这似乎解决了许多HTML层/深度问题。