[1] Appeler une fonction JavaScript depuis Flash
import flash.external.ExternalInterface;
ExternalInterface.call("bonjour");
[2] Rendre une fonction Flash disponible pour JS
import flash.external.ExternalInterface;
ExternalInterface.addCallback( "jsBonjour", this, asBonjour);
[3]
Appeler la fonction Flash depuis JS
window.onload = function() {
if (navigator.appName.indexOf( "Microsoft") != -1) {
var flash = window.flashObject;
}else {
var flash = window.document.flashObject
}
flash.jsBonjour();
}
|
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].
|