在嵌入式Flash文件周围添加链接

时间:2010-01-22 17:50:56

标签: html css flash clicktag

我想这样做,以便当我点击嵌入式Flash元素的任何位置时,它会将我带到目标网址。

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

<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文件做一些基本的事情?

非常感谢任何建议!

10 个答案:

答案 0 :(得分: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包含在生产代码的单独文件中。

答案 1 :(得分:6)

经过更多研究后更新:

之前已经问过这个问题,best answer是你必须在flash中创建链接。

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

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

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


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

    <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>
    

    (例如here

答案 2 :(得分:3)

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

答案 3 :(得分:1)

您可以创建自己的swf(或让某人为您执行此操作),该按钮可在舞台上使用FlashVars进行编辑,并在该按钮下方的主题swf中加载。

我为你创建了一个:Download

嵌入它时只需添加两个FlashVars:

  1. url - 点击swf时将访问的网址。
  2. swf - 要加载的swf文件。

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

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

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

当然 在所有情况下都消除了这个问题

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

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

答案 9 :(得分: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中,并将图像与左对齐,顶部对齐,右侧和底部属性,并指定 z-index 属性以重叠图像。