2017-01-14 12 views
1

У меня есть приложение Flash SWF в браузере, и я использую ExternalInterface для связи с JavaScript-документом.Есть ли метод, эквивалентный removeCallback для Flash ExternalInterface?

В Flash ExternalInterface API существует метод addCallback. Он добавляет функцию в объект SWF браузера. Когда вы называете это создает метод на SWF-объекта в браузере, который JS можно назвать:

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

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

Но я не вижу никакой существующий метод removeCallback. Что было бы эквивалентно removeCallback?

Вот то, что я до сих пор:

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

ли это выглядеть правильно?

ответ

3

Просто позвоните addCallback снова, установив функцию нуль:

ExternalInterface.addCallback("callAlert", null); 

В документации упоминается это: ExternalInterface.addCallback()

Примечание: Повторяя addCallback() на существующей функции обратного вызова с нулевого закрытия значение удаляет обратный вызов.