FlashObject
Par Toma le dimanche 6 novembre 2005, 15:28 - Blog - Lien permanent
FlashObject est une méthode pour intégrer du Flash dans un site web en restant compatible avec tous les navigateurs et avec les standards
La méthode par défaut pour intégrer du flash dans un site est la suivante :
<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 src="/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>
La partie OBJECT assure la compatibilité avec certains navigateurs (dont IE) et la partie EMBED assure la compatibilité avec d'autres navigateurs (dont Mozilla/Firefox).
Cette méthode fonctionne parfaitement cependant si l'on veut inclure des paramètres à l'animation Flash, on est obligé de les ajouter à deux endroits :
- Dans la partie OBJECT
<PARAM NAME=FlashVars VALUE="foo=Hello%20World¶graph=first+line%0Dsecond+line">
- et dans la partie EMBED
<EMBED src="display.swf" FlashVars="foo=Hello%20World¶graph=first+line%0Dsecond+line" ... (other parameters)> </EMBED>
Si en plus de cela, le paramètre est, par exemple du XML de plusieurs kilo-octets, on est donc obligé de l'inclure deux fois dans le code de la page HTML.
Pour éviter cela, il existe une méthode de contournement, FlashObject.
Cette méthode fait appel à du javascript qui détecte le type de methode supporté par le navigateur (OBJECT ou EMBED) et écrit dans la page le code HTML adapté pour faire l'appel à Flash correctement.
<script type="text/javascript" src="flashobject.js"></script>
<div id="flashcontent">
This text is replaced by the Flash movie.
</div>
<script type="text/javascript">
var fo = new FlashObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
fo.write("flashcontent");
</script>
pour ajouter un parametre, on ajoute la ligne suivante (une seule fois) :
fo.addVariable("variable1", "value1");
Toutes les explication se trouve sur ce site : Deconcept > FlashObject. Le script est sous licence M.I.T.
Une comparaison entre differentes methodes d'inclusion de Flash dans des pages web sur un blog de Macromedia
J'ai utilisé la methode FlashObject dans la galerie de ce site : par exemple sur la gallerie suivante