Flash遮盖其它层在WEB编程中,有时需要在页面中嵌入flash视频,例如优酷视频及其它flash资源,当我们嵌入flash视频后,如果该网页还有其它弹出框等需要用z-index设置层叠的元素时,默认设置会存在Flash一直在最上层,遮盖了其它层,使其它层设置的z-index无效。下面介绍解决方法

Flash遮盖其它层

一、问题描述

在WEB页面中,如果嵌入Flash,默认会将Flash放在页面的最上面。也就是说,即使用绝对定位,将z-index设的无穷高,页面里的任何元素还是无法将它盖住。

二、解决方法

在嵌入flash时,设置flash的wmode参数为opaque。即

1、针对IE 在<object></object>内加上参数<param name="wmode" value="opaque" />

2、针对FF 在<object></object>内加上参数<embed name="wmode" value="opaque" ></embed>

例如:

  •  
  • HTML 代码   复制
  • 
    <object type=”application/x-shockwave-flash” data=”style/flash/001.swf” width=”400″ height=”400″>
       <param name=”movie” value=“001.swf” />
     <param name=”wmode” value=”opaque” />
     <embed wmode=”opaque”></embed>
    </object> 
    
    			
  • 三、flash嵌入的几种模式

    1、窗口(window)


    默认情况下的显示模式。在这种模式下flash player有自己的窗口句柄,这就意味着flash视频是存在于Windows中的一个显示实例,并且是在浏览器核心显示窗口之上的,但这也是flash最快最有效率的渲染模式。但是这种模式会导致默认显示方式下flash总是会遮住位置与他重合的所有DHTML层。

    2、不透明无窗口(opaque)

    这是一种无窗口模式,在这种情况下flash player没有自己的窗口句柄,这就需要浏览器需要告诉flash player在浏览器的渲染表面绘制的时间和位置。这时flash视频就不会在高于浏览器HTML渲染表面而是与其他元素一样在同一个页面上,因此你就可以使用z-index值来控制DHTML元素是遮盖flash或者被遮盖。


    3、透明无窗口(transparent)


    透明模式,在这种模式下flash player会将stage的背景色alpha值将为0,并且只会绘制stage上真实可见的对象,同样你也可以使用z-index来控制flash影片的深度值,但是与opaque模式不同的是这样做会降低flash影片的回放效果。

    标签: