在web開發(fā)中可能會遇到flash遮擋頁面中元素的情況,無論怎么設(shè)置flash容器和層的深度(z-index)也無濟(jì)于事,現(xiàn)有的解決方案 是在插入flash的embed或object標(biāo)簽中加入”wmode”屬性并設(shè)置為wmode=“transparent”或”opaque”。
wmode即窗口模式總共有三種,Macromedia官方的說法:
window 模式
默認(rèn)情況下的顯示模式,在這種模式下flash player有自己的窗口句柄,這就意味著flash影片是存在于Windows中的一個(gè)顯示實(shí)例,并且是在瀏覽器核心顯示窗口之上的,所以flash只 是貌似顯示在瀏覽器中,但這也是flash最快最有效率的渲染模式。由于他是獨(dú)立于瀏覽器的HTML渲染表面,這就導(dǎo)致默認(rèn)顯示方式下flash總是會遮 住位置與他重合的所有DHTML層。
但是大多數(shù)蘋果電腦瀏覽器會允許DHTML層顯示在flash之上,但當(dāng)flash影片播放時(shí)會出現(xiàn)比較詭異的現(xiàn)象,比如DHTML層像被flash刮掉一塊一樣顯示異常。
Opaque 模式
這是一種無窗口模式,在這種情況下flash player沒有自己的窗口句柄,這就需要瀏覽器需要告訴flash player在瀏覽器的渲染表面繪制的時(shí)間和位置。這時(shí)flash影片就不會在高于瀏覽器HTML渲染表面而是與其他元素一樣在同一個(gè)頁面上,因此你就可 以使用z-index值來控制DHTML元素是遮蓋flash或者被遮蓋。
Transparent 模式
透明模式,在這種模式下flash player會將stage的背景色alpha值將為0并且只會繪制stage上真實(shí)可見的對象,同樣你也可以使用z-index來控制flash影片的 深度值,但是與Opaque模式不同的是這樣做會降低flash影片的回放效果,而且在9.0.115之前的flash player版本設(shè)置wmode=”opaque”或”transparent”會導(dǎo)致全屏模式失效。
了解了各種模式的實(shí)現(xiàn)方式和意義在以后的開發(fā)中就可以按照具體情況選擇設(shè)置wmode屬性的值了。
新聞熱點(diǎn)
疑難解答