1. 程式人生 > >彈出層被flash遮擋的解決辦法

彈出層被flash遮擋的解決辦法

先說下我遇到的情況:

在谷歌和firefox下是可以正常顯示的,但是在ie和360的極速模式下都會出現彈出層被視訊部分所遮擋住。

解決辦法:

在<embed>標籤中加入wmode="opaque" 。問題解決。

遇到的問題:

將<param name="wmode" value="opaque">加入到<object>標籤中無效。

需要了解的知識:

在html頁面中嵌入swf時,有一個引數相信大家一定會用到,那就是 wmode,下面說明一下次引數對應各個值的意義。

在Flash Player 9 中 對應三個可選引數 “window”,“opaque” 和 “transparent”。 在Flash Player 10中增加了兩個引數 “direct” 和 “gpu”


window :預設情況下的顯示模式,在這種模式下flash player有自己的視窗控制代碼,這就意味著flash影片是存在於Windows中的一個顯示例項,並且是在瀏覽器核心顯示視窗之上的,所以flash只是貌似顯示在瀏覽器中,但這也是flash最快最有效率的渲染模式。由於他是獨立於瀏覽器的HTML渲染表面,這就導致預設顯示方式下flash總是會遮住位置與他重合的所有DHTML層

opaque :這是一種無視窗模式,在這種情況下flash player沒有自己的視窗控制代碼,這就需要瀏覽器需要告訴flash player在瀏覽器的渲染表面繪製的時間和位置。這時flash影片就不會在高於瀏覽器HTML渲染表面而是與其他元素一樣在同一個頁面上,因此你就可以使用z-index值來控制DHTML元素是遮蓋flash或者被遮蓋。

transparent :透明模式,在這種模式下flash player會將stage的背景色alpha值將為0並且只會繪製stage上真實可見的物件,同樣你也可以使用z-index來控制flash影片的深度值,但是與Opaque模式不同的是這樣做會降低flash影片的回放效果,而且在9.0.115之前的flash player版本設定wmode=”opaque”或”transparent”會導致全屏模式失效。

direct :直接通過網頁瀏覽器進行渲染。

gup :開啟Flash Player 10的GPU硬體加速,此加速防止只能對Bitmap和Video兩種物件進行加速。