flash_z-index

<param name="quality" value="high"> 
<param name="wmode" value="Opaque">

或者這樣:
<embed src="images/new.swf" quality="high" wmode="Opaque" width="1006" height="586"></embed>

在做web開發中可能會遇到flash遮擋頁面中元素的情況,無論怎麼設置flash容器和層的深度(z-index)也無濟於事,現有的解決方案 是在插入flash的embed或object標籤中加入”wmode”屬性並設置爲wmode=“transparent”或”opaque”,但 wmode屬性到底是什麼意義,爲什麼可以解決這個問題呢?


window 模式

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

但是大多數蘋果電腦瀏覽器會允許DHTML層顯示在flash之上,但當flash影片播放時會出現比較詭異的現象,比如DHTML層像被flash刮掉一塊一樣顯示異常。

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”會導致全屏模式失效。


"Opaque windowless"和"Transparent windowless"都可與 HTML 層交互,從而允許 SWF 文件上方的層遮蔽應用程序。這兩種選項之間的差異在於"Transparent"允許透明,因此,如果 SWF 文件的某一部分是透明的,則 SWF 文件下方的 HTML 層可以透過該部分顯示出來,而"opaque"則不會顯示。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章