swfobject:在所有PC浏览器中通过闪存的绝对位置链接

时间:2012-07-18 21:25:34

标签: html css flash swfobject

我有一些Flash广告(与swfobject一起安装),它们的顶部有一个HTML链接。我正在使用wmode透明,它可以在Mac上的每个浏览器中正常工作,例如PC上的/ chrome / ff(在win7上查看)链接落后于闪存。

我也试过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%; }

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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里面是一个Object标签,MIME类型设置为“img / gif”,然后显然只是object标签中的一个图像。这个图像只是一个1×1的透明gif。因此,由于DOM顺序和z索引,带有图像的Object将位于另一个之上。 现在,这将成功触发我需要的所有浏览器的警报.. FireFox,Safari,Chrome,Opera,Internet Explorer 8,Internet Explorer 7和Internet Explorer 6.

答案 2 :(得分: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>