我在浏览器中有一个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];


这看起来正确吗?

最佳答案

只需再次调用addCallback,将函数设置为null即可:

ExternalInterface.addCallback("callAlert", null);


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


  注意:在现有的回调函数上使用
  null闭包值将删除回调。

10-07 14:46