对于Flash ExternalInterface,是否有一个等效于removeCallback的方法?

时间:2017-01-14 00:11:42

标签: javascript actionscript-3 flash air

我在浏览器中有一个Flash SWF应用程序,我正在使用ExternalInterface与JavaScript文档进行通信。

在Flash ExternalInterface API中有一个addCallback方法。它在浏览器SWF对象上添加了一个函数。当你调用它时,它会在JS可以调用的浏览器中的SWF对象上创建一个方法:

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];

这看起来是否正确?

1 个答案:

答案 0 :(得分:3)

再次调用addCallback,将函数设置为null:

ExternalInterface.addCallback("callAlert", null);

文档提到了这一点:ExternalInterface.addCallback()

  

注意:使用a在现有回调函数上重复addCallback()   null闭包值删除回调。