博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何在flash上放置标签

Posted on 2010-01-11 16:08  miles.chen  阅读(804)  评论(1)    收藏  举报
引用
--------------------------------------------------------------------------
<param name="WMODE" value="transparent">

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

<param name="wmode" value="Window">

NOTE: 支持其它浏览器(firefox opera etc.) 则使用 <embed wmode="transparent" />在embed节点中加入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”会导致全屏模式失效。
--------------------------------------------------------------------------------------------------------------------------------------------------
了解了各种模式的实现方式和意义在以后的开发中就可以按照具体情况选择设置wmode属性的值了。
 
我自己需要将flash作为几个控件的背景,所以用z-index设置了两个div层,把flash放在底层,把控件放在上层,示例代码如下:
    <div id="flash" style="z-index:1; position:absolute;">
    <div id="textBox" style="z-index:0; position:absolute;margin-top:50px; margin-left:200px;">
        <asp:TextBox ID="TextBox1" Text="test" runat="server"></asp:TextBox>
    </div>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="430" height="115">
    <param name="movie" value="topright.swf">
    <param name="quality" value="high">
    <embed src="topright.swf" quality="high" type="application/x-shockwave-flash" width="430" height="300"></embed>
    <param name="wmode" value="Opaque">
    </object>  
    </div>