2010-01-22 47 views
15

我想讓它在單擊嵌入式Flash元素上的任意位置時將其帶到目標網址。在嵌入式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文件完成這些基本功能?

任何建議非常感謝!更多的研究後

回答

6

更新:

這個問題已經被問過,而best answer是,你必須創建Flash中的鏈接。

通常這是通過向.swf傳遞一個參數(通常命名爲clickTAG)來動態完成的,以告訴它在哪裏鏈接。

在你的情況(因爲別人提供您的SWF文件),我可以看到2個選項:

  1. .swf文件的作者可能已經實施了clickTAG method(你可以問他們,或者只是嘗試一下上.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> 

(例如here

+1

我試着實現這一點,它沒有奏效。此外,您的鏈接轉到與此主題無關​​的論壇頁面。 – JWM

+0

鏈接指向一個包含Flash橫幅廣告的頁面:查看頁面源代碼,看看他們是如何做到的! –

3

使用的z-index將一個透明的gif或PNG文件在閃光,只是錨與你的網址是透明的形象。

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。

+0

謝謝,這是我所做的,除了我使用'div'而不是'i'標記,並且我在樣式標記中使用了'top'而不是'margin-top'。似乎只做我需要做的事情。再次感謝。 – James

+0

我還必須通過在對象標記''中添加以及嵌入標記'wmode =「opaque」'的此屬性將窗口中的Flash模式更改爲不透明。 –

1

你可以創建你自己的swf(或有人爲你做),在舞臺上有一個可編輯的按鈕FlashVars,並加載在你的主題swf下的按鈕。

我爲您創建了一個:Download

你只需要當你把它嵌入到添加兩個Flash變數:

  1. url - 如果單擊SWF將要訪問的URL。
  2. swf - 要加載的swf文件。
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> 

肯定 消除了該問題在所有情況下

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

你不需要PNG。一個簡單的空div(具有相同的維度)也適用於我。不過謝謝! – xxxbence

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

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> 
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> 
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,然後位置絕對與圖像通過左,上,右和底部屬性對準它,asigning 股利z-index屬性重疊圖像。