Journal du Net Développeur >  Flash >  Les nouveautés de Flash 8 par la pratique

Les nouveautés de Flash 8 par la pratique > 3. Intégration JavaScript

Précédente 4. Classes de fichiers 
[1] Appeler une fonction JavaScript depuis Flash
  1. import flash.external.ExternalInterface;
  2. ExternalInterface.call("bonjour");
[2] Rendre une fonction Flash disponible pour JS
  1. import flash.external.ExternalInterface;
  2. ExternalInterface.addCallback( "jsBonjour", this, asBonjour);
[3] Appeler la fonction Flash depuis JS
  1. window.onload = function() {
  2.     if (navigator.appName.indexOf( "Microsoft") != -1) {
  3.       var flash = window.flashObject;
  4.     }else {
  5.       var flash = window.document.flashObject
  6.     }
  7.     flash.jsBonjour();
  8.   }

Intégration JavaScript
Flash 8 propose une autre API que celle de filtres ou de gestion bitmap. La classe ExternalInterface a été conçue pour harmoniser les méthodes d'interaction entre le Flash Player et le navigateur Internet. Dans les faits, cette classe permet de communiquer en ActionScript avec le conteneur du Flash Player, ce qui correspond à la page HTML, ou à une application tierce. Elle est accessible via la package flash.external, et remplace l'ancien fscommand(). Elle fonctionne avec les navigateurs les plus importants, à savoir IE5 et plus, Firefox, Safari, Mozilla, Netscape 8...

Par exemple, si la page HTML dispose d'une fonction bonjour() déclenchant un simple alert("Bonjour!");, on pourrait l'appeler depuis Flash à l'aide du code ci-contre [1]. Il existe par ailleurs des méthodes pour récupérer le résultat de la fonction JavaScript...

Dans le sens inverse, on peut déclencher une fonction ActionScript à partir de code JavaScript. Mettant asBonjour() affiche un message dans un champ texte de Flash, on pourrait l'appeler depuis la page HTML avec le code ci-contre [2][3].

Précédente Retour au sommaire page suivante 
Introduction | 1 | 2 | 3 | 4
 
|
Haut de page
Nos autres sites Société | Mentions légales | Contacts | Publicité | PA Emploi | Presse | Recrutement | Tous nos sites | Données personnelles
© Benchmark Group, 69/71 avenue Pierre Grenier. 92517 Boulogne Billancourt Cedex