documentation flash flash external externalinterface addcallback

Vous êtes ici: Les articles techniques » documentation » Eléments du langage ActionScript » flash » external » ExternalInterface (flash.external.ExternalInterface) » addCallback (méthode ExternalInterface.addCallback)

addCallback (méthode ExternalInterface.addCallback)

 
public static addCallback(methodName:String, instance:Object, method:Function) : Boolean

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

Disponibilité : ActionScript 1.0 ; Flash Player 8

Paramètres

methodName:String - Nom utilisé pour appeler la fonction ActionScript à partir de JavaScript. Il n’est pas nécessaire que ce nom corresponde au nom actuel de la méthode ActionScript.

instance:Object - Objet que this convertit dans la méthode. Ce n’est pas nécessairement l’objet sur lequel la méthode se trouve : vous pouvez spécifier n’importe quel objet (ou null).

method:Function - Méthode ActionScript à appeler à partir de JavaScript.

Valeur renvoyée

Boolean - Renvoie true si l’appel a réussi. falseest renvoyé s’il a échoué parce que l’occurrence n’était pas disponible, en raison d’une restriction de sécurité, parce qu’aucun objet fonction de ce type n’existait, en raison d’une erreur de récursivité, ou s’y apparentant.

Une valeur false renvoyée peut également signifier que l’environnement conteneur appartient à un Sandbox de sécurité auquel le code effectuant l’appel n’a pas accès. Vous pouvez contourner ce problème en définissant une valeur appropriée pour la balise allowScriptAccess OBJECT ou EMBED du HTML de l’environnement conteneur.

Exemple

L’exemple suivant enregistre la fonction goToMacromedia() comme pouvant être appelée à partir du conteneur du nom de goHome.

import flash.external.*;
 
var methodName:String = "goHome";
var instance:Object = null;
var method:Function = goToMacromedia;
var wasSuccessful:Boolean = ExternalInterface.addCallback(methodName, instance, method);
 
var txtField:TextField = this.createTextField("txtField", this.getNextHighestDepth(), 0, 0, 200, 50);
txtField.border = true;
txtField.text = wasSuccessful.toString();
 
function goToMacromedia() {
     txtField.text = "http://www.macromedia.com";
     getURL("http://www.macromedia.com", "_self");
}

Pour que l’exemple ci-dessus fonctionne correctement, vous devez copier et coller le code suivant dans la page HTML conteneur. Ce code est basé sur le fait que l’attribut id de la balise OBJECT et l’attribut name de la balise EMBED doivent avoir la valeur externalInterfaceExample. La fonction thisMovie renvoie la syntaxe appropriée selon le navigateur, vu que Internet Explorer et Netscape font référence à l’objet movie différemment. A moins que la page HTML ne soit hébergée sur un serveur, votre navigateur peut vous alerter par un message de sécurité.

Remarque : Evitez d’utiliser d’autres méthodes d’accès à l’objet plug-in, telles que document.getElementById(”pluginName”) ou document.all.pluginName, parce que ces autres méthodes ne fonctionnent pas régulièrement sur tous les navigateurs.

<form>
     <input type="button" onclick="callExternalInterface()" value="Call ExternalInterface" />
</form>
<script>
function callExternalInterface() {
     thisMovie("externalInterfaceExample").goHome();
}
 
function thisMovie(movieName) {
     if (navigator.appName.indexOf("Microsoft") != -1) {
          return window[movieName]
     }
     else {
          return document[movieName]
     }
}
</script>



veille
inscrits inscrits ! Compensation à la rédaction
  • Inscription au wiki
  • Connexion

vod