Добавить ссылку вокруг встроенного файла Flash - PullRequest
15 голосов
/ 22 января 2010

Я хочу сделать так, чтобы, когда я щелкаю в любом месте встроенного элемента 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?

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

Ответы [ 10 ]

14 голосов
/ 15 марта 2012

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

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

6 голосов
/ 22 января 2010

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

Этот вопрос был задан ранее, и лучший ответ заключается в том, что вы должны создать ссылку во Flash.

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

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

  1. Ваш автор .swf, возможно, уже реализовал метод clickTAG (вы можете задать его или просто попробовать его на .swf, чтобы проверить, работает ли он.)
  2. Вы можете создать файл флэш-оболочки, который реализует clickTag, и он загрузит и отобразит ваш файл .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>

(например, здесь )

3 голосов
/ 02 апреля 2011

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

1 голос
/ 10 сентября 2013

Есть лучший способ, который я нашел

<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

1 голос
/ 02 августа 2013

Я разозлился, чтобы решить проблему .... Я попробовал несколько трюков, включая 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>
1 голос
/ 15 марта 2012

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

Я создал один для вас: Скачать .

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

  1. url -URL, который будет посещаться при нажатии SWF.
  2. swf - Файл SWF для загрузки.
0 голосов
/ 04 августа 2015

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

    <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 с изображением , а затем позиционировать как absolute div с изображением, выравнивая его по left, top, right и свойства bottom , а также присваивание свойства z-index для перекрытия изображения.

0 голосов
/ 28 сентября 2014

Спасибо! сейчас. Сработало

    <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 голосов
/ 12 сентября 2014

Это сработало для меня:

<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 голосов
/ 29 июля 2013
<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>

конечно, устраняет проблему во всех случаях

...