2010-01-22 1 views
15

Я хочу сделать так, чтобы при щелчке по встроенному Flash-элементу я взял его на целевой URL.Добавить ссылку Вокруг встроенного 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 файла Clickable для ссылки, но элемент флэш не кликабельны.

Если вы хотите отредактировать файл .swf, пожалуйста, сообщите мне об этом. Я не считаю себя разработчиком Flash, но есть ли какие-либо ресурсы, с чего начать, или как сделать что-то такое с существующим .swf-файлом?

Любые предложения очень ценятся!

ответ

6

Update после дополнительных исследований:

Этот вопрос был задан ранее, и best answer является то, что вы должны создать ссылку в флэш-памяти.

Обычно это выполняется динамически, передавая параметр (условно названный clickTAG) в .swf, чтобы сообщить ему, к какой ссылке.

В вашем случае (так как кто-то при условии, SWF-файлы) Я вижу 2 варианта:

  1. Ваш автор .swf, возможно, уже реализован clickTAG method (вы можете спросить их, или просто попробовать его на .swf, чтобы увидеть, работает ли он.)
  2. Вы можете создать файл флэш-обертки, который реализует clickTag, и загрузить его и отобразить ваш .swf-файл. Я знаю, что это похоже на хак, но я не вижу других альтернатив.

Надеюсь, это поможет!


Я также видел, что что-то подобное используется [edit: но я не могу заставить его работать! Googling предполагает, что это не возможно]

<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

Ссылка на страницу со флеш-баннером: посмотрите на источник страницы, чтобы посмотреть, как они это сделали! –

3

Поместите прозрачный .gif или .png файл над вспышкой, используя Z-индекс и просто закрепить, что прозрачное изображение с вашего URL.

14

У меня была такая же проблема, я нашел эту тему, но в итоге создал собственное решение.

Я добавил прозрачный элемент по ссылке, а затем сделал его перекрывать Embeded 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

Спасибо, это то, что я сделал, за исключением того, что вместо тега 'i' я использовал' div', а вместо тега 'margin-top' вместо' margin-top' использовал 'top'. Кажется, нужно делать то, что мне нужно. Еще раз спасибо. – James

+0

Мне также пришлось изменить режим Flash из окна на непрозрачный, добавив это внутри тега объекта '' и этот атрибут тега embed 'wmode =" opaque "'. –

1

Вы можете создать свой собственный swf (или попросить кого-нибудь сделать это за вас), у которого есть кнопка, редактируемая с FlashVars над сценой, и которая загружается в вашу тему swf под этой кнопкой.

Я создал один для вас: Download.

Вам просто нужно добавить два FlashVars, когда вы вставляете его:

  1. url - URL-адрес, который будет посещаемым, если SWF нажат.
  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

Вы не можете добавить ссылку на объект флэш, но вы можете перекрывать прозрачное изображение со ссылкой, над объектом вспышки. Это мой пример:

<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 с изображением совместив его слева, сверху, справа и снизу свойством и asigning z-index Свойство для перекрытия изображения.