jeu 15 juin 2006
SWFObject indispensable pour bloquage IE ?
15 06 2006Mmmh quelque chose d'intéressant m'est venu à l'esprit ce matin suite à mon dernier post. J'avais parlé de l'objet javascript "SWFObject" fourni par Adobe en raison du problème d'activation de Flash sous InternetExplorer. Pfff encore des patchs à mettre avec mes anims... assez embêtant tout ça dîtes-moi...
Alors pourquoi ne pas tester un petit détournement avec la fonction Ajax trouvée chez Qwix afin de voir comment notre navigateur récalcitrant réagit ^^.
J'ai rajouté une simple modification du passage en paramètre de l'id de la div d'affichage : Javascript :
<script type="text/javascript"> //définition de l'endroit d'affichage: var content = document.getElementById(div) </script>
Prenons un fichier index.htm contenant la fonction sendData() :
<script type="text/javascript">**Script de Qwix**</script>
un petit bout de code javascript permettant de lancer sendData() au chargement de la page (Vu chez sol@r) :
<script type="text/javascript"> window.onload = loadFunctions; function loadFunctions() { sendData(null, 'swf.php', 'GET', 'swf'); } </script>
et la div qui va permettre la réception de l'animation :
<div id="swf"></div>
Maintenant, il reste simplement à créer le fichier swf.php qui va contenir l'animation Flash :
<object type="application/x-shockwave-flash" data="anim.swf" width="550" height="400"> <param name="movie" value="anim.swf" /> </object>
Et voilou plus de demande d'activation 
Cette technique peut permettre de créer aussi des librairies d'animations Flash qui seront dans la page.
Il suffit de rajouter des sendData() dans la fonction javascript loadFunctions() pour chaque animation de la page et passer les noms des animations "'&anim=nomDeLAnim'" (et pourquoi pas la taille etc.) à la place de "null" dans la fonction sendData().
Il faudra ensuite placer à l'emplacement finale de chaque animation, une div avec l'id correspondante.
Et le php.swf pourra être modifié comme suit :
<object type="application/x-shockwave-flash" data="<?php echo $_GET['anim']; ?>.swf" width="550" height="400"> <param name="movie" value="<?php echo $_GET['anim']; ?>.swf" /> </object>
J'attends bien sûr quelques remarques car je n'ai pas testé cela partout 
un document.write de ton code <object .... /object> fonctionne aussi tres bien