现在的位置: 首页 > 综合 > 正文

flash盖住层的解决办法

2012年03月03日 ⁄ 综合 ⁄ 共 1505字 ⁄ 字号 评论关闭

在最近一个项目中,做好了漂亮的层效果,再加入一个swf格式的flash动画后结果变得惨不忍睹,层的大部分内容被flash盖住,而设置层的z-index优先顺序居然无效,怎样才能让DIV层位于flash对象之上或者说层如何叠加在flash上面呢?搜索到网上的关于flash盖住层的解决办法.

  • 通常的办法是将flash设置为透明,给flash增加两个参数
    <object>中加入 <param name="wmode" value="transparent" />
    <embed>中加入 wmode="transparent"
    我这样做了,然而结果是在firefox中正常了,而 IE7,遨游(maxthon),Opera,和Safari中均无效,层依然被flash盖住,尝试给层加上最优顺序z-index依然无法解决flash盖住层的问题

    尝试将flash放入层中,依然无法解决,在层与flash的优先顺序中,flash似乎总是优先于层的

    冥思苦想了1分钟,发现问题在这里,在dreamweaver 8中自动给swf加入了一个控件AC_FL_RunContent(),这是一个js函数,就是避免在IE中需要激活swf控件的函数,看到里面有设置宽度,高度和flash来源之类的东西,我想是不是需要在这里也添加呢?按照AC_FL_RunContent()参数的格式测试了一下,结果通过。

    附代码如下,见红色标志
    <script type="text/javascript">
    AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0',
    'width','600','height','170','src','dayanmei.com','quality','high','wmode','transparent',
    'pluginspage','http://www.macromedia.com/go/getflashplayer','movie','banner' ); //end AC code
    </script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="600" height="170">
          <param name="movie" value="dayanmei.com.swf" />
          <param name="quality" value="high" />
          <param name="wmode" value="transparent" />
          <embed src="dayanmei.com.swf" wmode="transparent" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="600" height="170"></embed>
        </object>
      </noscript>

    至此解决了 IE7,遨游(maxthon),Opera,和Safari中flash盖住层(覆盖层)的问题

抱歉!评论已关闭.