flash.externalExtensionContext La classe ExtensionContext fournit une interface permettant d’appeler des fonctions dans l’implémentation native d’une extension ActionScript.flash.events:EventDispatcher La classe ExtensionContext fournit une interface permettant d’appeler des fonctions dans l’implémentation native d’une extension ActionScript. Vous pouvez utiliser cette classe uniquement dans les classes ActionScript qui font partie de l’extension.

Prise en charge du profil AIR : cette fonctionnalité est prise en charge uniquement sur les périphériques AIR pour TV dans des applications qui font appel au profil de périphérique extendedTV.

Une extension ActionScript est une combinaison de :

  • Classes ActionScript.
  • Code natif. Le code natif est le code qui s’exécute sur un périphérique à l’extérieur du moteur d’exécution. Par exemple, le code que vous écrivez dans C est un code natif.

Vous pouvez créer une extension ActionScript pour permettre à une application AIR d’accéder aux fonctions propres au périphérique. Vous pouvez également créer une extension ActionScript pour réutiliser le code natif existant, ou pour fournir un traitement plus efficace à l’aide de code natif que vous pouvez fournir avec du code ActionScript. Pour plus d’informations sur l’écriture, la création et la mise en package d’extensions d’ActionScript, voir le document PDF Développement d’extensions ActionScript pour Adobe AIR.

Utilisez la classe ExtensionContext du côté ActionScript d’une extension ActionScript pour accéder au côté natif de l’extension. Commencez par créer une occurrence de la classe ExtensionContext. Pour ce faire, appelez la méthode statique ExtensionContext.createExtensionContext().

Après la création de l’occurrence de la classe ExtensionContext, utilisez la méthode call() de l’occurrence pour appeler une fonction native.

Lorsque vous avez terminé d’utiliser l’occurrence de la classe ExtensionContext, appelez la méthode dispose() pour libérer toutes les ressources natives associées. Sans un appel explicite à la méthode dispose(), le nettoyeur du moteur d’exécution appelle dispose() lorsqu’il supprime l’occurrence. Un appel explicite à la méthode dispose() se produit généralement beaucoup plus tôt que d’attendre le nettoyeur.

Une occurrence de la classe ExtensionContext peut écouter les événements StatusEvent que le code natif distribue lorsque certains événements asynchrones se produisent dans l’implémentation native de l’extension. Etant donné que la classe ExtensionContext dérive de EventDispatcher, elle peut à son tour distribuer des événements.

La classe ExtensionContext fournit également une méthode statique, getExtensionDirectory(), pour accéder au répertoire dans lequel est installée l’extension sur le périphérique. Elle fournit par ailleurs une propriété, actionScriptData, permettant de partager les données avec l’implémentation native de l’extension.

Remarque : les applications AIR ayant recours au profil extendedDesktop peuvent utiliser la classe NativeProcess pour exécuter des processus natifs.

Développement d’extensions ActionScript pour Adobe AIRflash.desktop.NativeProcesscall Appelle la fonction native spécifiée par functionName.Aucune fonction ne correspond au nom donné par functionName. ArgumentErrorArgumentErrorLa méthode dispose() a déjà été appelée sur cette occurrence d’ExtensionContext. Cette erreur est également renvoyée si la fonction native renvoie un objet de référence non valide. IllegalOperationErrorflash.errors:IllegalOperationErrorValeur renvoyée par la fonction native. La valeur renvoyée est null si la fonction native ne renvoie aucune valeur ou si elle renvoie une référence d’objet non valide. ObjectfunctionNameStringNom qui représente une fonction dans l’implémentation native. Ce nom n’est pas nécessairement le nom réel de la fonction native, mais tout autre nom convenu entre le côté ActionScript et côté natif de l’extension. argsListe d’arguments associés à la fonction native. Ces arguments peuvent être l’un des objets ActionScript : types de primitives ou objets de classes ActionScript. Les types et de l’ordre des arguments sont convenus entre le côté ActionScript et côté natif de l’extension. Appelle la fonction native spécifiée par functionName. Tout argument supplémentaire est transmis à la fonction native. createExtensionContext Crée une occurrence de ExtensionContext pour l’identifiant d’extension et le type de contexte spécifiés.Le paramètre extensionID est null ou n’est pas un ID d’extension valide. ArgumentErrorArgumentErrorNouvelle occurrence de ExtensionContext. Renvoie null si aucune extension avec la valeur extensionID donnée n’est disponible. flash.external:ExtensionContextextensionIDStringIdentifiant d’extension de l’extension. Cet identifiant a la même valeur que l’élément id dans le fichier descripteur de l’extension. Les développeurs d’application utilisent également cette valeur dans l’élément extensionID du fichier descripteur d’application. Toutes les extensions partagent un espace de noms unique et global. Par conséquent, pour éviter les conflits de noms, utilisez la notation DNS inverse pour l’identifiant d’extension. contextTypeStringType de contexte de l’extension. Selon le type de contexte, l’implémentation native peuvent procéder à différentes initialisations. Ces différences peuvent consister en la spécification, de la part de l’implémentation native, d’un autre jeu de fonctions natives disponibles que le côté ActionScript peut appeler. La valeur du type de contexte correspond à une chaîne convenue entre le côté ActionScript et le côté natif de l’extension. Les extensions simples n’ont souvent pas l’utilisation de plusieurs types de contextes. Dans ces cas, transmettez une chaîne vide, "" ou null, pour la valeur contextType. Crée une occurrence de ExtensionContext pour l’identifiant d’extension et le type de contexte spécifiés. dispose Supprime cette occurrence de ExtensionContext. Supprime cette occurrence de ExtensionContext.

Le moteur d’exécution en informe l’implémentation native, qui peut libérer toutes les ressources natives associées. Après l’appel de la méthode dispose(), le code ne peut pas appeler la méthode call(), et ne peut pas obtenir ou définir la propriété actionScriptData.

getExtensionDirectory Renvoie le répertoire dans lequel l’extension est installée sur le périphérique.Le répertoire de n’existe pas. La raison la plus probable est que l’extensionID spécifié n’est pas valide. IOErrorflash.errors:IOErrorOccurrence de File pour le répertoire dans lequel l’extension est installée. flash.filesystem:FileextensionIDStringIdentifiant d’extension de l’extension. Cet identifiant a la même valeur que le paramètre extensionID dans createExtensionContext(). Renvoie le répertoire dans lequel l’extension est installée sur le périphérique.

Il peut arriver qu’une extension comprenne des ressources, notamment des images, auxquelles vous souhaitez accéder à partir du code ActionScript de l’extension. Le code peut également avoir besoin d’informations disponibles dans le fichier descripteur de l’extension, telles que le numéro de version de l’extension. Vous pouvez utiliser cette méthode pour accéder au répertoire de base de l’extension.

Où que se trouve l’extension sur le périphérique, ses fichiers sont toujours au même emplacement par rapport à ce répertoire de base de l’extension. L’occurrence File que cette méthode renvoie permet d’accéder à certains fichiers inclus avec l’extension et de les manipuler.

actionScriptData Objet ActionScript, s’il existe, associé à ce contexte.ObjectLa méthode dispose() a déjà été appelée sur cette occurrence d’ExtensionContext. IllegalOperationErrorflash.errors:IllegalOperationError Objet ActionScript, s’il existe, associé à ce contexte.

Vous pouvez associer tout objet ActionScript à une occurrence d’ExtensionContext. L’implémentation native peut également obtenir et définir cet objet ActionScript. Par conséquent, vous pouvez utiliser actionScriptData pour partager des données entre le côté ActionScript et le côté natif d’une extension.

Vous pouvez également définir la valeur de actionScriptData sur null.

ExternalInterface La classe ExternalInterface est une interface de création d’applications qui permet une communication directe entre ActionScript et le conteneur SWF&#8211 ; par exemple, une page HTML avec JavaScript ou une application de bureau qui utilise Flash Player pour afficher un fichier SWF.Active les communications entre ActionScript et le conteneur. Object La classe ExternalInterface est une interface de création d’applications qui permet une communication directe entre ActionScript et le conteneur SWF& ; par exemple, une page HTML avec JavaScript ou une application de bureau qui utilise Flash Player pour afficher un fichier SWF.

La classe ExternalInterface permet d’appeler une fonction ActionScript dans le moteur d’exécution de Flash à l’aide de JavaScript dans la page HTML. La fonction ActionScript peut renvoyer une valeur que JavaScript reçoit immédiatement comme valeur de renvoi de l’appel.

Cette fonctionnalité remplace la méthode fscommand().

Utilisez la classe ExternalInterface pour les combinaisons suivantes de navigateurs et de systèmes d’exploitation :

NavigateurSystème d’exploitationSystème d’exploitationInternet Explorer 5.0 et versions ultérieuresWindows Netscape 8.0 et versions ultérieuresWindows MacOS Mozilla 1.7.5 et versions ultérieuresWindows MacOS Firefox 1.0 et versions ultérieuresWindows MacOS Safari 1.3 et versions ultérieures  MacOS 

Flash Player pour Linux version 9.0.31.0 et supérieure prend en charge la classe ExternalInterface dans les navigateurs suivants :

NavigateurMozilla 1.7.x et supérieureFirefox 1.5.0.7 et versions ultérieuresSeaMonkey 1.0.5 et supérieure

La classe ExternalInterface nécessite la prise en charge, par le navigateur Web de l’utilisateur, d’ActiveX® ou de l’API NPRuntime qui est exposée par certains navigateurs pour les scripts de plug-ins. Même si une combinaison navigateur/système d’exploitation n’apparaît pas dans la liste ci-dessus, elle devrait prendre en charge la classe ExternalInterface si elle gère l’API NPRuntime. Visitez le site http://www.mozilla.org/projects/plugins/npruntime.html.

Remarque : lors de l’intégration de fichiers SWF dans une page HTML, vérifiez que l’attribut id est défini et que les attributs id et name des balises object et embed ne comportent aucun des caractères suivants :

 . - + ~~ / \
 

Remarque concernant les applications de Flash Player : Flash Player 9.0.115.0 et les versions ultérieures autorisent l’utilisation du caractère . (point) dans les attributs id et name.

Remarque concernant les applications de Flash Player : dans Flash Player 10 et les versions ultérieures s’exécutant dans un navigateur, il est possible que vous ne puissiez pas utiliser cette classe par programmation pour ouvrir une fenêtre contextuelle. Certains navigateurs (et configurations de navigateur) peuvent bloquer les fenêtres contextuelles ; il n’est donc pas possible de garantir l’ouverture de toutes les fenêtres contextuelles. Toutefois, pour un résultat optimal, utilisez cette classe pour ouvrir une fenêtre contextuelle uniquement dans le code qui s’exécute comme conséquence directe de l’action d’un utilisateur (par exemple, un événement de type clic de souris ou pression de touche).

A partir d’ActionScript, vous pouvez effectuer les opérations suivantes sur la page HTML :

  • appeler toute fonction JavaScript ;
  • transmettre un nombre illimité d’arguments, quel que soit leur nom ;
  • transmettre divers types de données (Boolean, Number, String, etc.) ;
  • recevoir une valeur renvoyée par la fonction JavaScript.

A partir de JavaScript, vous pouvez effectuer les opérations suivantes sur la page HTML :

  • appeler une fonction ActionScript ;
  • transmettre des arguments en utilisant la notation d’appel de fonction standard ;
  • renvoyer une valeur à la fonction JavaScript.

Remarque concernant les applications de Flash Player : Flash Player ne prend actuellement pas en charge les fichiers SWF intégrés à des formulaires HTML.

Remarque concernant les applications d’AIR : dans Adobe AIR, la classe ExternalInterface peut être utilisée pour communiquer entre JavaScript dans une page HTML chargée dans un contrôle HTMLLoader et ActionScript dans un contenu SWF incorporé à cette page HTML.

L’exemple suivant illustre l’envoi des données entre Flash Player et un conteneur HTML. package { import flash.display.Sprite; import flash.events.*; import flash.external.ExternalInterface; import flash.text.TextField; import flash.utils.Timer; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; public class ExternalInterfaceExample extends Sprite { private var input:TextField; private var output:TextField; private var sendBtn:Sprite; public function ExternalInterfaceExample() { input = new TextField(); input.type = TextFieldType.INPUT; input.background = true; input.border = true; input.width = 350; input.height = 18; addChild(input); sendBtn = new Sprite(); sendBtn.mouseEnabled = true; sendBtn.x = input.width + 10; sendBtn.graphics.beginFill(0xCCCCCC); sendBtn.graphics.drawRoundRect(0, 0, 80, 18, 10, 10); sendBtn.graphics.endFill(); sendBtn.addEventListener(MouseEvent.CLICK, clickHandler); addChild(sendBtn); output = new TextField(); output.y = 25; output.width = 450; output.height = 325; output.multiline = true; output.wordWrap = true; output.border = true; output.text = "Initializing...\n"; addChild(output); if (ExternalInterface.available) { try { output.appendText("Adding callback...\n"); ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript); if (checkJavaScriptReady()) { output.appendText("JavaScript is ready.\n"); } else { output.appendText("JavaScript is not ready, creating timer.\n"); var readyTimer:Timer = new Timer(100, 0); readyTimer.addEventListener(TimerEvent.TIMER, timerHandler); readyTimer.start(); } } catch (error:SecurityError) { output.appendText("A SecurityError occurred: " + error.message + "\n"); } catch (error:Error) { output.appendText("An Error occurred: " + error.message + "\n"); } } else { output.appendText("External interface is not available for this container."); } } private function receivedFromJavaScript(value:String):void { output.appendText("JavaScript says: " + value + "\n"); } private function checkJavaScriptReady():Boolean { var isReady:Boolean = ExternalInterface.call("isReady"); return isReady; } private function timerHandler(event:TimerEvent):void { output.appendText("Checking JavaScript status...\n"); var isReady:Boolean = checkJavaScriptReady(); if (isReady) { output.appendText("JavaScript is ready.\n"); Timer(event.target).stop(); } } private function clickHandler(event:MouseEvent):void { if (ExternalInterface.available) { ExternalInterface.call("sendToJavaScript", input.text); } } } } Afin de tester l’ancien code ActionScript, incorporez le fichier SWF généré à l’aide du modèle HTML suivant : <!-- saved from url=(0014)about:internet --> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ExternalInterfaceExample</title> <script language="JavaScript"> var jsReady = false; function isReady() { return jsReady; } function pageInit() { jsReady = true; document.forms["form1"].output.value += "\n" + "JavaScript is ready.\n"; } function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return window[movieName]; } else { return document[movieName]; } } function sendToActionScript(value) { thisMovie("ExternalInterfaceExample").sendToActionScript(value); } function sendToJavaScript(value) { document.forms["form1"].output.value += "ActionScript says: " + value + "\n"; } </script> </head> <body onload="pageInit();"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="ExternalInterfaceExample" width="500" height="375" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"> <param name="movie" value="ExternalInterfaceExample.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#869ca7" /> <param name="allowScriptAccess" value="sameDomain" /> <embed src="ExternalInterfaceExample.swf" quality="high" bgcolor="#869ca7" width="500" height="375" name="ExternalInterfaceExample" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> </embed> </object> <form name="form1" onsubmit="return false;"> <input type="text" name="input" value="" /> <input type="button" value="Send" onclick="sendToActionScript(this.form.input.value);" /><br /> <textarea cols="60" rows="20" name="output" readonly="true">Initializing...</textarea> </form> </body> </html>
fscommand()addCallback Enregistre une méthode ActionScript comme pouvant être appelée à partir du conteneur.Le conteneur ne prend pas en charge les appels entrants. Les appels entrants ne sont gérés que dans Internet Explorer pour Windows et les navigateurs qui utilisent l’API NPRuntime, tels que Mozilla 1.7.5 et versions ultérieures, ou Firefox 1.0 et versions ultérieures. ErrorErrorUn rappel avec le nom spécifié a déjà été ajouté par ActionScript dans un sandbox auquel vous n’avez pas accès. Il vous est impossible de le remplacer. Pour contourner ce problème, réécrivez le code ActionScript qui appelait au départ la méthode addCallback() de sorte qu’il appelle également la méthode Security.allowDomain(). SecurityErrorSecurityErrorL’environnement conteneur appartient à un sandbox de sécurité auquel le code effectuant l’appel n’a pas accès. Pour résoudre ce problème, exécutez la procédure suivante :
  1. Dans la balise object associée au fichier SWF intégré à la page HTML, définissez le paramètre suivant :

    <param name="allowScriptAccess" value="always" />

  2. Dans le fichier SWF, ajoutez le code ActionScript suivant :

    flash.system.Security.allowDomain(sourceDomain)

SecurityErrorSecurityError
functionNameStringNom utilisé par le conteneur pour appeler la fonction. closureFunctionLa fermeture de fonction à appeler. Il peut s’agir d’une fonction autonome ou d’une méthode de fermeture qui référence une méthode d’occurrence d’objet. En transmettant une fermeture de méthode, vous pouvez dirigez le rappel vers une méthode d’une occurrence d’un objet particulier.

Remarque : répéter addCallback() sur une fonction de rappel avec une valeur de fermeture null supprime le rappel.

Enregistre une méthode ActionScript comme pouvant être appelée à partir du conteneur. Lorsque l’appel de addCallBack() a abouti, la fonction enregistrée dans le lecteur peut être appelée par le code JavaScript ou ActiveX dans le conteneur.

Remarque : pour le contenu local s’exécutant dans un navigateur, les appels à la méthode ExternalInterface.addCallback() fonctionnent uniquement si le fichier SWF et la page Web le contenant se trouvent dans le sandbox de sécurité approuvé localement. Pour plus d’informations, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

flash.system.Security.allowDomain()
call Appelle une fonction présentée par le conteneur SWF en transmettant la valeur zéro ou d’autres arguments.Le conteneur ne prend pas en charge les appels sortants. Les appels sortants ne sont gérés que dans Internet Explorer pour Windows et les navigateurs qui utilisent l’API NPRuntime, tels que Mozilla 1.7.5 et versions ultérieures, ou Firefox 1.0 et versions ultérieures. ErrorErrorL’environnement conteneur appartient à un sandbox de sécurité auquel le code effectuant l’appel n’a pas accès. Pour résoudre ce problème, exécutez la procédure suivante :
  1. Dans la balise object associée au fichier SWF intégré à la page HTML, définissez le paramètre suivant :

    <param name="allowScriptAccess" value="always" />

  2. Dans le fichier SWF, ajoutez le code ActionScript suivant :

    flash.system.Security.allowDomain(sourceDomain)

SecurityErrorSecurityError
Réponse émanant du conteneur. Si l’appel a échoué (imaginons que cette fonction ne figure pas dans le conteneur, qu’un problème de sécurité soit survenu, que l’interface n’est pas disponible ou encore qu’une erreur de récursivité s’est produite avec un navigateur Netscape ou Opera), la valeur null est renvoyée et une erreur est signalée. functionNameStringNom alphanumérique de la fonction à appeler dans le conteneur. L’utilisation d’un nom de fonction non alphanumérique entraîne une erreur d’exécution (erreur 2155). Vous pouvez utiliser un bloc try..catch pour gérer cette erreur. argumentsArguments à transmettre à la fonction dans le conteneur. Vous pouvez ne spécifier aucun paramètre ou en spécifier plusieurs en les séparant par des virgules. Ces paramètres peuvent être de tout type de donnée ActionScript. Si vous faites appel à une fonction JavaScript, les types ActionScript sont automatiquement convertis en types JavaScript. Si l’appel s’adresse à un autre conteneur ActiveX, les paramètres sont encodés dans le message de requête. Appelle une fonction dans le conteneur.
Appelle une fonction présentée par le conteneur SWF en transmettant la valeur zéro ou d’autres arguments. Si la fonction n’est pas disponible, l’appel renvoie null ; sinon, elle renvoie la valeur fournie par la fonction. La récursion n’est pas autorisée dans les navigateurs Opera et Netscape. Dans ces derniers, un appel récursif produit une réponse null (la récursion est prise en charge par les navigateurs Internet Explorer et Firefox).

Si le conteneur correspond à une page HTML, cette méthode appelle une fonction JavaScript dans un élément script.

Si le conteneur est un autre conteneur de type ActiveX, cette méthode distribue l’événement FlashCall ActiveX au nom spécifié ; le conteneur traite alors l’événement.

Si le conteneur renferme le plug-in Netscape, vous pouvez soit écrire le support personnalisé pour la nouvelle interface NPRuntime, soit intégrer un contrôle HTML et intégrer le lecteur au contrôle HTML. Si vous intégrez un contrôle HTML, vous pouvez communiquer avec le lecteur via une interface JavaScript qui dialogue avec l’application conteneur native.

Remarque : pour le contenu local s’exécutant dans un navigateur, les appels à la méthode ExternalInterface.call() ne sont autorisés que si le fichier SWF et la page Web qui le contient (le cas échéant) se trouvent dans le sandbox de sécurité approuvé localement. Vous pouvez également empêcher un fichier SWF d’utiliser cette méthode en définissant le paramètre allowNetworking des balises object et embed dans la page HTML qui stocke le contenu SWF. Pour plus d’informations, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Remarque concernant les applications de Flash Player : dans Flash Player 10 et Flash Player 9 Mise à jour 5, certains navigateurs Web ne prennent pas en charge cette méthode si un bloqueur de fenêtres publicitaires intempestives est activé. Dans ce cas, l’appel de cette méthode aboutit uniquement en réponse à l’événement d’un utilisateur (notamment lorsque celui-ci clique sur une souris ou appuie sur une touche).

L’exemple suivant indique comment utiliser la classe ExternalInterface (flash.external.ExternalInterface) pour envoyer une chaîne depuis Flash Player au conteneur HTML dans lequel elle s’affiche à l’aide de la fonction alert() de JavaScript. Exemple fourni par ActionScriptExamples.com. // // Requires: // - A Flash Professional Label component on the Stage with an instance name of "lbl". // - A Flash Professional Button component on the Stage with an instance name of "button". // var xmlResponse:String = "<invoke name=\"isReady\" returntype=\"xml\"><arguments><number>1</number><number>" + stage.stageWidth + "</number><number>" + stage.stageHeight + "</number></arguments></invoke>"; lbl.text = "ExternalInterface.available: " + ExternalInterface.available; lbl.width = 200; button.enabled = ExternalInterface.available; button.addEventListener(MouseEvent.CLICK, button_click); function button_click(evt:MouseEvent):void { ExternalInterface.call("alert", xmlResponse); }
marshallExceptions Indique si l’interface externe doit tenter de transmettre des exceptions ActionScript au navigateur actuel et des exceptions JavaScript au lecteur.falseBooleanTransfert des exceptions entre AS et JS. Indique si l’interface externe doit tenter de transmettre des exceptions ActionScript au navigateur actuel et des exceptions JavaScript au lecteur. Vous devez définir explicitement cette propriété sur true pour récupérer les exceptions JavaScript dans ActionScript et les exceptions ActionScript dans JavaScript. L’exemple suivant crée une fonction ActionScript et l’enregistre avec le navigateur récepteur à l’aide de la méthode addCallback(). La nouvelle fonction émet une exception afin que le code JavaScript qui s’exécute dans le navigateur puisse la récupérer. Cet exemple contient également une instruction try..catch pour récupérer toutes les exceptions émises par le navigateur lors de l’appel de la fonction throwit(). package { import flash.external.* import flash.net.*; import flash.display.*; import flash.system.System; public class ext_test extends Sprite { function ext_test():void { ExternalInterface.marshallExceptions = true; ExternalInterface.addCallback("g", g); try { ExternalInterface.call("throwit"); } catch(e:Error) { trace(e) } } function g() { throw new Error("exception from actionscript!!!!") } } } addCallback()try..catch..dernière instructionavailable Indique si ce lecteur se trouve dans un conteneur doté d’une interface externe.BooleanIndique si le lecteur se trouve dans un conteneur doté d’une interface externe. Indique si ce lecteur se trouve dans un conteneur doté d’une interface externe. Si l’interface externe est disponible, cette propriété est true ; sinon, elle est false.

Remarque : si vous utilisez l’API externe avec HTML, assurez-vous toujours que le chargement du code HTML est terminé avant de tenter d’appeler toute méthode JavaScript.

L’exemple suivant utilise la propriété available pour déterminer si le lecteur se trouve dans un conteneur doté d’une interface externe. package { import flash.text.TextField; import flash.display.MovieClip; import flash.external.ExternalInterface; public class extint_test extends MovieClip { public function extint_test() { var isAvailable:Boolean = ExternalInterface.available; var availTxt:TextField = new TextField(); availTxt.text = isAvailable.toString(); addChild(availTxt); } } }
objectID Renvoie l’attribut id de la balise object dans Internet Explorer, ou l’attribut name de la balise embed dans Netscape.String Renvoie l’attribut id de la balise object dans Internet Explorer, ou l’attribut name de la balise embed dans Netscape.