Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

23juin/080

Flex External Interface – Changer le statut du Navigateur (exemple JS)

ExternalInterface peut sembler un peu complexe jusqu'à ce que l'on voit un ou deux exemples. Cet exemple vous permettra d'y voir plus clair. Cette application permet simplement à une application Flex d'appeler un JavaScript dans le navigateur qui contient le SWF pour changer le message de la barre de statut quand l'utilisateur passe au dessus (rollover) d'un bouton Flex.

Firefox désactive l'accès JavaScript à window.status par défaut, c'est pourquoi cet exemple peut ne pas fonctionner avec la configuration par défaut de Firefox.

Cette application utilise un simple document MXML et une page HTML. Le document MXML doit contenir ce code:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			private function rollOverHandler(event:MouseEvent):void{
				ExternalInterface.call("setStatus",event.currentTarget.label);
			}
		]]>
	</mx:Script>
	<mx:VBox>
		<mx:Button label="Bouton A" rollOver="rollOverHandler(event)"/>
		<mx:Button label="Bouton B" rollOver="rollOverHandler(event)"/>
		<mx:Button label="Bouton C" rollOver="rollOverHandler(event)"/>
		<mx:Button label="Bouton D" rollOver="rollOverHandler(event)"/>
	</mx:VBox>
</mx:Application>

Ce document MXML crée 4 boutons. Chaque bouton a un label différent. En utilisant le handler sur l'événement rollOver, chaque bouton notifie la méthode rollOverHandler() quand l'utilisateur passe au dessus du bouton. La méthode rollOverHandler() utilise ExternalInterface.call() pour appeler la méthode setStatus qui est définit en JavaScript dans la page HTML qui contient le SWF embed.

La page HTML devrait contenir le template HTML standard pour embarquer une application Flex. En plus, elle doit définir la fonction JavaScript qui suit:

<script language="JavaScript" type="text/javascript">
<!--
function setStatus(value){
	window.status = value;
}
// -->
</script>

Lorsque vous testez l'application, le message de la barre d'état du navigateur quand vous passez sur les boutons de l'application Flex.

Articles similaires