web-dev-qa-db-fra.com

Ajouter un lien autour d'un fichier Flash incorporé

Je souhaite faire en sorte que lorsque je clique n'importe où sur l'élément Flash intégré, il m'emporte vers une URL de destination.

Voici mon code actuel, qui ne produit pas l'effet souhaité:

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

À l’heure actuelle, l’espace derrière le fichier .swf est cliquable pour le lien, mais l’élément Flash n’est pas cliquable.

Si la bonne chose à faire est de modifier le fichier .swf d'une manière ou d'une autre, merci de me le faire savoir. Je ne me considère pas comme un développeur Flash, mais existe-t-il des ressources permettant de savoir où commencer ou comment faire quelque chose d'aussi basique avec un fichier .swf existant?

Les suggestions sont très appréciées!

15
JWM

Mise à jour après d'autres recherches:

Cette question a déjà été posée et la meilleure réponse est que vous devez créer le lien dans flash.

Cela se fait généralement de manière dynamique en transmettant un paramètre (généralement appelé clickTAG) au fichier .swf pour lui indiquer où lier le lien.

Dans votre cas (puisque quelqu'un d'autre a fourni vos fichiers swf), je peux voir 2 options:

  1. Votre auteur .swf a peut-être déjà implémenté la méthode clickTAG (vous pouvez le leur demander, ou simplement l’essayer sur le .swf pour voir s’il fonctionne.)
  2. Vous pouvez créer un fichier wrapper flash qui implémente clickTag et le charger et afficher votre fichier .swf. Je sais que cela ressemble à un bidouillage, mais je ne vois aucune autre alternative.

J'espère que cela t'aides!


J'ai aussi vu quelque chose comme ceci utilisé [edit: mais je ne peux pas le faire fonctionner! Googler suggère que ce n'est pas possible]

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

(Par exemple ici )

6
Richard Inglis

J'ai eu le même problème, j'ai trouvé ce fil, mais j'ai fini par créer ma propre solution.

J'ai ajouté un élément transparent au lien, puis je l'ai fait chevaucher le swf intégré

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

Remarque - vous devriez probablement inclure le fichier css dans un fichier séparé pour le code de production.

14
Gary V

Placez un fichier .gif ou .png transparent sur le flash à l'aide de z-index et ancrez simplement cette image transparente avec votre URL.

3
GreaseJunkie

Vous pouvez créer votre propre fichier swf (ou demander à quelqu'un de le faire pour vous) avec un bouton modifiable avec FlashVars sur la scène et chargé dans votre sujet swf sous ce bouton.

Je vous en ai créé un: Télécharger .

Il vous suffit d’ajouter deux FlashVars lors de l’intégration:

  1. url - L'URL qui sera visitée si l'utilisateur clique sur le fichier swf.
  2. swf - Le fichier swf à charger.
1
Marty

Il y a un meilleur moyen que j'ai trouvé

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

Je me suis fâché pour résoudre le problème ... J'ai essayé plusieurs astuces, dont jquery et javascript.

La solution qui fonctionne dans tous les navigateurs est sans aucun doute celle au dessus de ma réponse.

Merci utilisateur 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
Corrado Prever
<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>

élimine certainement le problème dans tous les cas

0
aaydin

Cela a fonctionné pour moi:

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

Vous ne pouvez pas ajouter de lien à un objet flash, mais vous pouvez superposer une image transparente à un lien , sur l’objet flash. Voici mon exemple:

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

Dans mon cas, l'objet est incorporé par un script, mais il devrait fonctionner de la même manière.
Vous devez envelopper dans un div relatif l’objet et un div avec l’image , puis vous positionner comme absolu le div avec l’image l’alignant par Propriétés left, top, right et bottom , et asigning z-index property pour recouvrir l'image.

0
Sergio

Je vous remercie! à présent. Ça a marché

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