15

我想这样做,以便当我单击嵌入式 Flash 元素上的任意位置时,它会将我带到目标 URL。

这是我当前的代码,它不会产生预期的效果:

<div class="contentdiv" style="margin:-72px 0 10px 0px; cursor:pointer;" onclick="location.href='http://example.com/';">

<object height="410" width="720">
<param name="movie" value="images/tri.swf">
<embed src="images/tri.swf" height="400" width="700"> 
</embed>
</object>

</div>

现在它使 .swf 文件后面的空间可点击链接,但 Flash 元素不可点击。

如果正确的做法是以某种方式编辑 .swf 文件,请告诉我。我不认为自己是 Flash 开发人员,但是是否有任何资源可以说明从哪里开始或如何使用现有的 .swf 文件做一些基本的事情?

任何建议都非常感谢!

4

10 回答 10

14

我遇到了同样的问题,找到了这个线程,但最终创建了我自己的解决方案。

我在链接中添加了透明元素,然后使其与嵌入的 swf 重叠

<a href="http://example.com/" target="_blank">
  <object height="410" width="720"><param name="movie" value="http://www.theslap.com/swf/slap_logo.swf">
    <embed src="http://www.theslap.com/swf/slap_logo.swf" height="400" width="700"></embed>
  </object>
  <i style="display:block; height: 410px; width: 720px;  position: relative; z-index: 9; margin-top: -410px;"></i>
</a>

注意 - 您可能应该将 css 包含在单独的文件中以用于生产代码。

于 2012-03-14T21:30:38.937 回答
6

更多研究后更新:

这个问题之前有人问过,最好的答案是你必须在flash中创建链接。

通常这是通过将参数(通常称为 clickTAG)传递给 .swf 来告诉它链接到哪里来动态完成的。

在您的情况下(因为其他人提供了您的 swf 文件)我可以看到 2 个选项:

  1. 您的 .swf 作者可能已经实现了clickTAG 方法(您可以询问他们,或者只是在 .swf 上尝试一下,看看它是否有效。)
  2. 您可以制作一个实现 clickTag 的 flash 包装文件,并让它加载并显示您的 .swf 文件。我知道这似乎是一个黑客,但我看不到任何其他选择。

希望这可以帮助!


我也见过这样的东西使用[编辑:但我无法让它工作!谷歌搜索表明这是不可能的]

<a href="http://example.com/" target="_blank">
 <object height="410" width="720"><param name="movie" value="images/tri.swf">
 <embed src="images/tri.swf" height="400" width="700"></embed>
 </object>
</a>

(例如这里

于 2010-01-22T18:13:51.280 回答
3

使用 z-index 在 flash 上放置一个透明的 .gif 或 .png 文件,然后用您的 URL 锚定该透明图像。

于 2011-04-01T20:50:43.980 回答
1

您可以创建自己的 swf(或让别人为您做),它有一个可FlashVars在舞台上方编辑的按钮,并在该按钮下方加载您的主题 swf。

我为您创建了一个:下载

您只需要在嵌入时添加两个 FlashVar:

  1. url- 单击 swf 时将访问的 URL。
  2. swf- 要加载的 swf 文件。
于 2012-03-14T21:55:16.800 回答
1

我很生气要解决这个问题....我尝试了几种技巧,包括 jquery 和 javascript。

绝对适用于所有浏览器的解决方案是我的回复。

感谢用户 user2628529

            <div class="containe">
              <div  style="position:absolute;"> <a href="http://www.sample.com" target="_blank" > <img src="http://www.sample.it/banner/trasparent-190-505.png"> </a> </div>
              <div >
                <object type='application/x-shockwave-flash' data='http://www.sample.it/banner/banner-one.swf' width='190' height='505'>
                  <param name='flashvars' value='clickTag=&clickTarget=_self' />
                  <param name='allowScriptAccess' value='always' />
                  <param name='movie' value='banner-one.swf' />
                  <param name='wmode' value='transparent' >
                </object>
              </div>
            </div>
于 2013-08-02T10:15:00.333 回答
1

我找到了一个最好的方法

<div class="flash-wrap">
   <a class="flash-link" href="#"></a>
   <object type="application/x-shockwave-flash" data="flash.swf" width="180" height="220">
      <param name="wmode" value="opaque">
      <param name="movie" value="flash.swf" />
      <param name="quality" value="high" />
   </object>
</div>

 

 .flash-wrap{
         position: relative;
         }

      .flash-link{
         position: absolute; top:0px; left:0px;
         width:180px; /*Flash Size*/
         height:220px; 
         /*background: url('images/0.gif') no-repeat;*/ /*You should uncommented this line for support old IE version.*/
         }

https://gist.github.com/m-pokrovskii/6558817

于 2013-09-10T06:24:39.107 回答
0
<div id="logo" >
   <div id="linklogo" style="position:absolute;"><a href="http://www.gogle.com"><img src="transparent.png"></a></div>
   <div id="flashlogo" >
    <object type='application/x-shockwave-flash' data='1.swf' width='200' height='86'>     <param name='flashvars' value='clickTag=&clickTarget=_self' /><param name='allowScriptAccess' value='always' /><param name='movie' value='1.swf' /><param name="wmode" value="transparent"></object>
</div>

肯定在所有情况下都消除了问题

于 2013-07-28T23:35:50.077 回答
0

这对我有用:

<a target="_blank" href="{{ entity.link }}">
    <object type="application/x-shockwave-flash" data="{{ entity.file.path }}?clickTAG={{ entity.link }}" width="120" height="600" style="visibility: visible;">
        <param name="quality" value="high">
        <param name="play" value="true">
        <param name="LOOP" value="false">
        <param name="wmode" value="transparent">
        <param name="allowScriptAccess" value="true">
    </object>
</a>
于 2014-09-12T10:08:39.673 回答
0

谢谢你!现在。有效

    <div style="width: 400px; height: 100px;">
    <a href="http://www.sample.com" target="_blank">
    <object height="100" width="400"><param name="movie" value="1.swf">
      <embed src="1.swf" quality="high" type="application/x-shockwave-flash" wmode="transparent" width="400" height="100" pluginspage="http://www.macromedia.com/go/getflashplayer" allowScriptAccess="always"></embed>
    </object>  
      <i style="display: block; height: 100px; width: 400px; position: relative;z-index: 9;margin-top: -102px;"></i>
    </a>
</div>
于 2014-09-28T02:13:36.793 回答
0

您不能将链接添加到 Flash 对象,但您可以将带有链接的透明图像重叠在 Flash 对象上。这是我的例子:

    <div style="position: relative;">
        <div style="position: absolute;
        left: 250px;
        top: 0px;
        z-index: 9999;">
            <a href="http://terrazasmedicina.com.ar/hometerrazas.html">
<img src="logoLinkTR.png" width="504" height="103"></a>
        </div>
        <script type="text/javascript">
    AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','1024','height','106','src','banner','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','banner' ); //end AC code
    </script></div>

在我的情况下,对象是由脚本嵌入的,但它应该工作相同。
您必须将对象和带有图像的 div 包装在相对 div 中,然后将 div 与图像一起定位为绝对div,通过左、上、右和下属性对齐它,并分配z-index属性以重叠图像。

于 2015-08-04T13:52:00.280 回答