Faire un lien sur un .swf

Fermé
stevie21 - 11 sept. 2009 à 21:51
 Mrp84 - 5 nov. 2010 à 04:03
Bonjour,

j'ai créé des boutons à l'aide du logiciel flash, j'ai par la suite insérer ces boutons dans ma page html et j'ai fait un lien vers une autre page avec la balise<a href...>.

Lorsque je test sur firefox, aucun problème, mon bouton fonctionne correctement et le lien marche.

cependant, lorsque j'arrive avec internet explorer, le bouton fonctionne, mais lorsque je clique dessus, il ne se passe rien, le lien ne fonctionne pas du tout.

Voici mon code:

<!-- menu photos -->
<a href="photos.html">
<object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="95" height="28">
<param name="movie" value="images/menu/photos.swf" />
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<param name="swfversion" value="9.0.45.0" />
<param name="expressinstall" value="Scripts/expressInstall.swf" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="images/menu/photos.swf" width="95" height="28">
<!--<![endif]-->
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<param name="swfversion" value="9.0.45.0" />
<param name="expressinstall" value="Scripts/expressInstall.swf" />
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object></a>


Je ne dois pas être très loin de la solution, c'est seulement internet explorer qui fait encore des caprices:p

Je vous remercie de vos réponses
A voir également:

5 réponses

-113pictural-
24 sept. 2009 à 10:11
Bonjour,
de fait InternetExplorer refuse un lien direct depuis un .swf, tandis que FireFox, Chrome et Safari l'acceptent sans problème.
M'étant penché ardemment sur la question hier afin de résoudre cette douloureuse énigme, je suis heureux de vous soumettre une solution que je viens d'élaborer, et qui offrira le triple avantage:
1. d'être opérationnelle sur les 4 navigateurs cités ci-avant;
2. d'être pré-configurée depuis un fichier .css ou directement dans le .html (pas de javascript ou autre ActionScript -héhé!-);
3. de susciter l'intérêt du visiteur par un avis de texte ou d'image au simple passage du curseur de la souris sur un .swf, et ainsi d'activer un lien (_.htm, _...) par un clic-gauche. L'astuce est de superposer d'autorité à une video.swf un lien qui lui et lui-seul va "capter" la fonction du lien, car InternetExplorer est vraiment trop poussif ...décidément!

Voici que la notion d' "info-bulle" est absolument précieuse:

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

<html>

<head>

<style type="text/css">

.swaf /*vous créez une classe, par exemple nommée .swaf*/
{
display:block;
z-index:45; /*indice de superposition de plan sur la pageweb; la plus élevée est prioritaire; n'est pas opérationnel sur tous les navigateurs*/
position:relative /*position "à la suite" dans la chronologie de votre page*/
}

.swaf span
{
display:none /*reste caché jusqu'au passage du curseur*/
}

.swaf:hover span /*le contenu caché est révélé ici par le survol du curseur*/
{
z-index:50; /*considérant que l'indice 50 est bien supérieur à 45*/
display:block;
position:absolute; /*position "scotchée" à relative*/
color:#_; /*couleur du texte à votre goût!*/
border:_px solid #_; /*à votre goût!*/
padding:_px; /*marge interne*/
top:_px; /*position depuis le .swf, à ajuster "à tâtons" selon les dimensions de votre .swf*/
left:_px} /*à ajuster également*/
}

</style>

<head>

<body>

<a class="swaf" href="_.htm">
<object type="application/x-shockwave-flash" data="_/_/_.swf" width="_" height="_"> //*d'autres spécifications apparaissent désormais superflues, tant est que 85% mondiaux des ordinateurs qui surfent le Web sont pourvus du ShockWavePlayer version 6 minimum voire 10. La 10 contient le FlashPlayer*//
<param name="movie" value="_/_/_.swf" />
<param name="wmode" value="transparent" /> (ou value="window")
<param name="play" value="true" />
<param name="loop" value="false" />
</object>
<span>cliquer ici!(TEXTE CLIQUABLE qui se superpose au .swf sans interférer sur celui-ci)
</span>
</a>

</body>

</html>

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Voilà! C'est tout, et -EURêKA- ça marche!!! Si si, je viens de le tester sur InternetExplorer. C'est vraiment épatant.

NOTER: entre <span></span> vous pouvez même faire figurer une image (.gif(animé ou non), .png, .jpg, ou un autre .swf (par exemple musical***)) à votre choix. Dans un souci de design, veillez toutefois à vous assurer des dimensions de votre <span><img _ /></span>. Des dimensions largement inférieures au .swf sont plutôt sympa ...mais bien sûr, c'est à vous de choisir!

Donc:
<span><img src="_/_.png" border="0" width="_" height="_" alt="_" title="_" />
</span>

***un .swf musical est une audio-video sans images! Si si, c'est très possible.
Son intérêt est double:
1. le .swf (ou tout autre fichier .gif, .png ou .jpg) est pré-loadé (pré-téléchargé) dès l'ouverture de la pageWeb grâce à la .class:hover span en .css et <span></span> en .html et reste stocké dans le cache du navigateur afin d'être opérationnel immédiatement (5 milli-sec) au passage du curseur de la souris de l'ordinateur de votre visiteur (réduction de la fonction "côté-serveur" à "côté-client");
2. le .swf musical peut-être utilisé en guise d'annonce sonore, càd de "jingle"; son volume en ko (kilo d'octets) justifie qu'il soit et demeure relativement léger. De fait, le taux de compression en .swf (musical mp3 !!!) offre un atout réel; cependant: ne soyons pas trop gourmands! (max 500 ko) sous peine de risquer de perdre l'effet d'instantanéité à la commande ...lorsque précisément le pré-chargement est rétif à cause d'un débit de connexion rétif: Internet par téléphone mobile (...de 10h à 13h, de 17h à 21h!).
Afin d'obtenir un .swf musical (càd sans flux d'images), convertissez par exemple un .wav en .swf (mp3 seul en somme) mais sous le pseudo-format .swf en désactivant la fonction video de votre convertisseur (Super eRightSoft gratuitiel).

Mais parce que InternetExplorer est vraiment trop "pouff", l'effet "info-bulle" avec un .swf musical n'y fonctionne qu'une seule fois: "Raaaah!" quitte à actualiser la page. Tandis qu'avec Firefox, Chrome et Safari, c'est le top! (en fait le "top du top", c'est bien FireFox aussi pour les subtiles subtilités futiles mais tant agréables: "Poésie, Poésie, quand tu nous tient!").
J'espère à ce propos revenir vers vous prochainement à toute bonne fin de vous présenter une solution pour l'indécrottable IE. Or, serai-je le premier cette fois-là? A votre piano! please ...

Bonne journée!
-113pictural-
2
113pictural Messages postés 457 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 5 octobre 2009 53
24 sept. 2009 à 11:46
Oups! j'ai juste omis de fermer la balise <head> correctement.

Donc je la ferme ici:
</head>
1
@ 113pictural Bravo pour ce tuto, tu m'as sauvé la vie!
1
Luan1604 Messages postés 130 Date d'inscription dimanche 6 septembre 2009 Statut Membre Dernière intervention 19 octobre 2009 4
12 sept. 2009 à 12:24
0o ? Mettre un lien sur un flash ? Mauvaise idée. Normal que ça ne marche pas, flash n'est pas censé être utilisé pour ce genre de chose... Pourquoi ne pas insérer directement un lien dans le bouton flash ?

https://www.adobe.com/?id=tn_14192#geturl
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
113pictural Messages postés 457 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 5 octobre 2009 53
24 sept. 2009 à 12:21
La classe .swaf étant display:block, il utile de limiter à des dimensions précises le champ actif du lien. Quoi que l'absence de dimensions active toute la ligne du "block" (c'est quand même intéressant en fait d'ergonométrie), les dimensions précises pourraient être celles de l'audio-video.swf.

Ainsi, cela devient:

.swaf
{
display:block;
width:_px;
height:_px;
z-index:45;
position:relative
}

Sachons bien que le positionnement du lien actif hérite des dimensions de ce "block":
top:_px (ou bottom:_px); /*depuis le haut, ...*/
left:_px (ou right:_px). /*depuis la gauche, ...*/
0