13 Apr, 2009
Flex & Flash : ExternalInterface et erreur javascript avec Internet Explorer
Posted by: Guillaume Andre In: Flex

Respectueux des standards j’ai toujours opté pour intégrer mes applications Flash/Flex dans les règles avec une balise OBJECT digne de ce nom en évitant les librairies externes Javascript (bien que très fonctionnelles) et balises embed. Néanmoins voici un petit retour d’expérience pour les intégrateurs.
Lors du déploiement d’une application Flex j’ai obtenu l’erreur Javascript suivante sous Internet Explorer uniquement :
 
Ligne : 1
Caractère : 102
Erreur : ‘null’ a la valeur Null ou n’est pas un objet.
Code : 0
Le debuggeur incorporé dans Internet Explorer 8 m’a très vite fait comprendre qu’il s’agissait de l’ExternalInterface API d’ActionScript :
Â
3 possibilités pour résoudre cette problématique :
- Utiliser une librairie Javascript type swfobject ;
- Utiliser le JavaScript par défaut généré par les outils Adobe ;
- Utiliser la balise OBJECT suivante, bien que non valide xHTML strict :
<object width=”400″ height=”300″>
   <param name=”allowscriptaccess” value=”always” />
   <param name=”movie” value=”mon.swf” />
   <embed src=”mon.swf” type=”application/x-shockwave-flash” allowscriptaccess=”always” width=”400″ height=”300″>
</embed>
</object>
Ce problème a vu le jour avec l’arrivée de Flash player 10.