接到说要在一个在首页flash上面加多个超链接的任务,一开始只要设置好z-index属性就可以了。没想到浮动,position,z-index什么属性都试遍了,图片总是在flash下方显示。真搞不懂怎么可以这么霸道。
于是就求助了万能的百度,找到一篇文章《如何让飘动的图片显示在FLASH上面的方法》,说的刚好就是我要的效果,于是一试,果不其然。。。
方法是这样的,在Flash的标记内加入下面的代码:
<!-- lang: html -->
<param name="wmode" value="opaque">
,看了看源代码,原来的value是Window,改了值之后,图片便位于flash之上了,效果达到,剩下的position就不是问题了。
事后查找了下资料,
“
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”会导致全屏模式失效。
”
由于原来网页太简单,没看出后两种的效果差别。总结,想flash很霸道的显示在最上一层,用window模式,想让flash上还可以显示其他元素,考虑后两种模式。
参考资料:
http://hi.baidu.com/hirjgd/item/0a887c12a6e5a0ef9913d65a
http://www.blueidea.com/tech/web/2009/6469.asp