2008-11-07 11 views
2
<object height="25" width="75" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> 
     <param value="http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK" name="movie"/> 
     <param value="high" name="quality"/> 
     <param value="#FFFFFF" name="bgcolor"/> 
     <param value="opaque" name="wmode"/> 
     <embed height="25" width="75" wmode="opaque" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" bgcolor="#FFFFFF" quality="high" src="http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK"/> 
    </object> 

Je dois insérer ce balisage hérité dans un nouveau site que je construis. Le problème est son utilisation d'un tag <embed>.Comment mettre à jour ce code

Est-ce que je ferais juste disparaître le <embed> et mettre du contenu en tant qu'alternative, pour ceux qui n'ont pas flash? Fondamentalement, je suis juste en train d'essayer d'apporter ce morceau de html dans le 21ème siècle.

Répondre

1

J'utilise la fonction AC_FL_RunContent pour intégrer des objets flash - c'est bien parce qu'elle supporte tous les navigateurs et est recommandée par Adobe.

Plus est here:

Ils suggèrent également d'utiliser l'objet <> balise au lieu de < embed>

2

Vous pouvez regrouper les éléments d'objet nid pour afficher des alternatives. Le W3C l'explique here. J'ai copié un extrait ci-dessous:

Une conséquence importante de la conception de l'élément OBJECT est qu'il offre un mécanisme permettant de spécifier d'autres rendus d'objets; Chaque déclaration OBJECT incorporée peut spécifier d'autres types de contenu. Si un agent utilisateur ne peut pas restituer l'objet OBJECT le plus éloigné, il essaie de rendre le contenu, qui peut être un autre élément OBJECT, etc.

Dans l'exemple suivant, nous intégrons plusieurs déclarations OBJECT pour illustrer le fonctionnement des rendus alternatifs. Un agent utilisateur tentera de rendre le premier élément OBJECT dans l'ordre suivant: (1) une applet Earth écrite en langage Python, (2) une animation MPEG de la Terre, (3) une image GIF de la Terre , (4) texte alternatif.

<P>     <!-- First, try the Python applet --> 
<OBJECT title="The Earth as seen from space" 
    classid="http://www.observer.mars/TheEarth.py"> 
       <!-- Else, try the MPEG video --> 
    <OBJECT data="TheEarth.mpeg" type="application/mpeg"> 
       <!-- Else, try the GIF image --> 
     <OBJECT data="TheEarth.gif" type="image/gif"> 
       <!-- Else render the text --> 
     The <STRONG>Earth</STRONG> as seen from space. 
    </OBJECT> 
    </OBJECT> 
</OBJECT> 
1

Fondamentalement, vous devez garder Embed, car il est une solution de repli pour certains anciens navigateurs. Cela pourrait nuire à la validation de la page, mais tant que vous savez pourquoi il est là, c'est OK.

Au moins, ce qui est la façon dont Adobe recommande officiellement: Macromedia Flash OBJECT and EMBED tag syntax

Vous avez raison de vouloir faire du code pour XXIème siècle, mais nous devons traiter avec le navigateur du précédent millénaire ... :-)

+0

Oui, mais quel navigateur voulez-vous utiliser en utilisant la balise "embed"? Pour autant que je sache, même IE 6 peut lire des films flash dans un tag "objet" sans "intégrer" assez bien. Et c'est probablement l'un des pires navigateurs de nos jours ... – hangy

1

J'ai trouvé ce code sur le web (à partir d'un site utilisabilité) qui accueille pour IE et d'autres, et je l'utilise sur mes pages flash (je l'ai changé à votre code):

<!--[if !IE]> --> 
<object type="application/x-shockwave-flash" data="http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK" width="75" height="25"> 
<!-- <![endif]--> 

<!--[if IE]> 
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="75" height="25"> 
    <param name="movie" value="http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK" /> 
<!--><!--dgx--> 
    <param name="loop" value="false"> 
    <param name="menu" value="false"> 
    <param name="quality" value="high"> 
</object> 
<!-- <![endif]--> 
2

Je vous recommande utiliser swfobject qui est une bibliothèque multiplateforme, open source pour afficher flash sur vos pages.

http://code.google.com/p/swfobject/

Il existe une variété de façons de charger le flash et le contenu alternatif (non-flash). Par exemple, le code suivant peut remplacer votre code:

<script type="text/javascript" src="swfobject.js"></script> 
<script type="text/javascript"> 
    swfobject.embedSWF("http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK", 
     "myContent", "25", "75", "9.0.0"); 
</script> 
<div id="myContent"> 
    <p>Alternative content</p> 
</div> 
Questions connexes