2017-01-14 2 views
1

J'ai une application Flash SWF dans le navigateur et j'utilise ExternalInterface pour communiquer avec le document JavaScript. Dans l'API Flash ExternalInterface, il existe une méthode addCallback. Il ajoute une fonction sur l'objet SWF du navigateur. Lorsque vous appelez cela crée une méthode sur l'objet SWF dans le navigateur que JS peut appeler:Existe-t-il une méthode équivalente à removeCallback pour Flash ExternalInterface?

AS: 
public function myEventListener(event):void {}; 
ExternalInterface.addCallback("myFunction", myEventListener); 

JS: 
// returns "function" 
console.log(typeof swfObject.getObjectById('myApp').myFunction); 

Mais je ne vois aucune méthode removeCallback existante. Quel serait l'équivalent de removeCallback?

Voici ce que j'ai jusqu'à présent:

var application = this[objectId]; // gets the Flash object 
application[callbackName] = null; 
delete application[callbackName]; 

Est-ce correct regardez? Il suffit d'appeler addCallback à nouveau

Répondre

3

, le réglage de la fonction null:

ExternalInterface.addCallback("callAlert", null); 

La documentation mentionne ceci: ExternalInterface.addCallback()

Note: La répétition addCallback() sur une fonction de rappel existante avec une fermeture nulle valeur supprime le rappel.