1

我有许多 Flash 广告(随 swfobject 一起安装),它们的顶部有一个 HTML 链接。我正在使用 wmode 透明,它在 mac 上的每个浏览器中都可以正常工作,但是在 PC 上的 ie/chrome/ff(在 win7 上查看)链接落在 flash 后面。

我也试过 wmode=opaque 无济于事。

这是HTML:

<a href="$Link" class="overlay"></a>
<div class="flashContainerSml">
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="125" height="125">
    <param name="movie" value="$Flash.URL" />
    <param  name="wmode" value="transparent" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="$Flash.URL" width="125" height="125">
    <param  name="wmode" value="transparent" />
    <!--<![endif]-->
    <p>no flash</p>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
    </object>
</div>

和适当的CSS

#sideBar .smallAd .overlay { position: absolute; top: 0; left: 0; z-index: 9999; width: 100%; height: 100%; }
4

3 回答 3

1

按钮/链接不在 swf 本身中是否有特定原因?在这样的 swf 顶部堆叠一个按钮是一种不好的做法(正如您所发现的那样)。如果我是你,我会重做 swf,这样你就可以把按钮放在里面而不是试图堆叠在上面。

于 2012-07-18T21:57:47.333 回答
1

如果选项 1(我的第一个答案)不起作用,请尝试以下解决方案:

  <script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/swfobject.js"></script>

<script type="text/javascript">

  $(document).ready(function() {

    swfobject.embedSWF("flash/movie.swf", "no-flash", "195", "120",
    "9.0.0", "flash/expressInstall.swf", {}, {wmode:"transparent"}, {});

    $('#div2').live('click',function() {
      alert('triggered a click');
    });
  });
</script>

<style type="text/css">
  #div {
    position:relative;
  }
  #div2 {
    position:absolute;
    z-index: 1;
  }
</style>  

<div id="div">
  <div id="div2" style="width:195px;height:120px;">
    <object type="img/gif">
      <img src="images/null.gif" width="100%" height="100%" />
    </object>
  </div>   

  <img id="no-flash" src="images/no-flash.gif" alt="" />  

 </div>

这次我将#div2 div 放在了第一个div 中,但在被SWFObject 替换的图像上方。在这个 div 中是一个对象标签,其 MIME 类型设置为“img/gif”,然后显然只是对象标签中的一个图像。这张图片只是一个 1×1 的透明 gif。因此,由于 DOM 顺序和 z-indexes,带有图像的对象将位于另一个对象之上。现在,这将在我需要的所有浏览器上成功触发警报。FireFox、Safari、Chrome、Opera、Internet Explorer 8、Internet Explorer 7 和 Internet Explorer 6。

于 2012-07-18T22:23:01.803 回答
1

最后很简单。注意链接中的透明 gif。

<a href="$Link" class="overlay"><img src="$ThemeDir/images/transparent.gif" /></a>
                        <div class="flashContainerSml">
                            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="125" height="125">
                            <param name="movie" value="$Flash.URL" />
                            <param name="wmode" value="opaque" />
                            <!--[if !IE]>-->
                            <object type="application/x-shockwave-flash" data="$Flash.URL" width="125" height="125">
                            <param name="wmode" value="opaque" />
                            <!--<![endif]-->
                              <p></p>
                            <!--[if !IE]>-->
                            </object>
                            <!--<![endif]-->
                            </object>
                        </div>
于 2012-07-18T22:30:54.793 回答