2009-09-30 6 views
3

Bien que l'intégration d'un SWF en HTML ne soit pas trop difficile, il existe quelques subtilités pour différents navigateurs, en détectant si Flash est installé, etc. Pour activer AJAX, vous pouvez utiliser des blocs de code standard pour éviter les problèmes d'adaptation dans tous les cas ... est-ce une «implémentation de référence» similaire pour intégrer un SWF couvrant toutes les bases?Existe-t-il un moyen standard de copier-coller pour mettre en sécurité un fichier SWF dans une page Web?

Répondre

3

Existe-t-il une norme? Malheureusement pas. Les points souhaitables d'une méthode intégrant Flash sont:

  1. navigateur moderne compatible
  2. IE compatible
  3. compatible
  4. navigateur ancien
  5. conforme aux normes
  6. supportant cams flash (jeu avant tout le fichier est téléchargé) dans IE
  7. Ne pas se répéter
  8. autoriser le contenu de secours
  9. pas de dépendance JavaScript

mais il n'y a pas un seul paquet de balisage satisfaisant tous ces points. Le point 6 est impossible à réaliser pleinement, mais certaines solutions échouent plus que d'autres.

A propos de la plus simple balisage, vous pouvez vous en sortir avec la version est décrite dans l'article Flash Satay classique:

<object type="application/x-shockwave-flash" data="file.swf" width="x" height="y"> 
    <param name="movie" value="file.swf" /> 
    (Non-Flash content here) 
</object> 

L'article ALA se plaint que cette version ne sera pas inviter l'utilisateur à télécharger Flash si elle n » t installé; Personnellement, je vois cela comme un point positif. Mais cela échoue toujours sur les points 3 et 5. Le point 5 peut être important ou non: si votre fichier Flash est une application simple, un lecteur multimédia ou un chargeur, cela n'a pas d'importance, mais si c'est une grosse animation, ça peut être malheureux . Peut-être que le point 3 n'a plus d'importance; personne n'utilise vraiment Netscape 4 ou IE4 ces jours-ci. Mais si c'est le cas, vous avez besoin de la balise embed old-school. Ceci est également pris en charge par les navigateurs modernes ce qui signifie que vous pouvez utiliser la méthode ActiveX pour l'objet externe, vous obtenez le streaming dans IE:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="x" height="y"> 
    <param name="movie" value="file.swf" /> 
    <embed type="application/x-shockwave-flash" src="file.swf" width="x" height="y" /> 
</object> 

Ceci est la méthode « traditionnelle » de l'intégration Flash. Il échoue sur les points 4 et 7 et est légèrement moins bon sur le point 6.

La troisième approche, utilisée par les bibliothèques telles que SWFObject est d'utiliser JavaScript pour choisir la meilleure façon d'instancier Flash sur le navigateur actuel. 8. Certaines bibliothèques offrent des moyens d'atténuer cela en incluant également le balisage d'objet statique, le point de négociation 8 pour le point 6.

1

Apple(lien par exemple)

contenu que vos plug-ins visionneront doit être intégrée au sein de HTML. La plupart des navigateurs le font avec une balise EMBED, , mais d'autres requièrent l'étiquette OBJECT. Pour la compatibilité maximale, vous pouvez régler votre page pour soutenir les deux.

Adobe(lien par exemple)

La balise OBJECT est utilisé par Internet Explorer sur Windows et le EMBED est utilisé par Netscape Navigator (Macintosh et Windows) et Internet Explorer (Macintosh) pour diriger le navigateur vers charger Macromedia Flash Player. Internet Explorer sous Windows utilise un contrôle ActiveX pour jouer Macromedia contenu Flash alors que tous les autres navigateurs et les combinaisons de plates-formes utilisent la technologie plug-in Netscape pour jouer contenu Macromedia Flash. Ce explique le besoin de deux étiquettes.

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
     codebase="http://download.macromedia.com/pub/ 
       shockwave/cabs/flash/swflash.cab#version=6,0,40,0" 
      WIDTH="550" 
     HEIGHT="400" 
      id="myMovieName"> 
    <PARAM NAME=movie VALUE="myFlashMovie.swf"> 
    <PARAM NAME=quality VALUE=high> 
    <PARAM NAME=bgcolor VALUE=#FFFFFF> 
    <EMBED href="/support/flash/ts/documents/myFlashMovie.swf" 
     quality=high 
     bgcolor=#FFFFFF 
      WIDTH="550" 
     HEIGHT="400" 
      NAME="myMovieName" 
      ALIGN="" 
      TYPE="application/x-shockwave-flash" 
    PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"> 
    </EMBED> 
</OBJECT> 
1

De nombreuses implémentations de plongement flash semblent reposer sur SWFObject. Est-ce le genre de chose que vous cherchez? Edit: le projet est hébergé here maintenant

1

Je recommanderais SWF Object par rapport à toutes les autres options parce qu'il produit html conforme aux normes et est vraiment facile à installer.

0
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> 
<div id="myvideo"></div> 
<script type="text/javascript"> 
var params = { allowScriptAccess: "always" }; 
var atts = { id: "myplayerid1" }; 
swfobject.embedSWF("http://www.youtube.com/v/gRvUpoTT-Bo&hl=pt-br&fs=1&enablejsapi=1&playerapiid=myplayerid1&version=3", "myvideo", "425", "344", "8", null, null, params, atts); 
</script> 

Cela pourrait être le moyen facile ..use violon js pour tester tout code ... qui m'a beaucoup aidé à essayer beaucoup de choses