2009-07-30 124 views
2

我有一个瑞士法郎,需要Flash 9,我试图显示它的内容。为了促进这一点,我将wmode设置为透明。问题是,这只适用于用户安装了Flash 10的情况,我真的不想要Flash 10查看我正在工作的网站上的内容。当我用Flash 9将Flash内容拉到一个div上时,swf会渗入或完全覆盖div。通过Flash 9显示内容swf?

如何防止这种情况而不使用户10的Flash 10?

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

编辑:

此失败行为只在Safari中注意到。

回答

2

我不确定这是否会帮助你本身。但我已经使用以下方法在Flash上​​显示内容。

前段时间我曾经遇到过这个问题。我向用户展示了在网站上注册的条款和条件弹出窗口。弹出窗口没有问题,但是在页面顶部有一个隐藏对话框上部的Flash动画。经过测试和广泛使用的方法是将iframe放置在要显示内容和绝对位置的内容和IFrame的位置。例如,如果你想显示flash动画上面一个div,然后将一个IFrame的类似如下:

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

然后是位置正是这种IFRAME上面的格状:

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

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

1)在电影元素上放置id属性来唯一标识电影对象。 Like,

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

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

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

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

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

4)关闭对话框后,再次显示电影。像,

$("#dialog").dialog("close"); 
    $("#movie1").css("display","inline"); 
3

的wmode透明一直是闪存的一部分了多年,并且不局限于为Flash Player 10

不管,你并不需要使用的wmode透明;除非您确实需要SWF中的透明度,否则应该使用wmode不透明。它没有多少bug并且使用较少的处理能力。

诀窍还在于确保您的HTML元素在CSS中声明了“位置”。下面的例子和说明这里

尝试: http://learnswfobject.com/advanced-topics/placing-html-elements-over-a-flash-movie/

-1

我发现这个在我的书签(他们是从前期10年代)。虽然我现在没有任何Flash Player 9/Safari来验证此权限。试一试。

Different WModes for Browsers

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

-1

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

1

我不能提供可以解决问题的建议,所以我建议您可能想避免该问题。

不是有过在z指数

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

如何Flash内容的(X)HTML内容有关,而不是放置的Flash上​​面的(X)HTML内容的窗口:

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

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

+0

这在这种情况下是不可能的。 Flash在页面上显得很高,我正在使用jquery-ui组件。如果可能的话,我会全力解决问题。 – 2009-09-04 12:58:35