Flash ExternalInterface 是否有等效于 removeCallback 的方法?
Is there a method equivalent of removeCallback for Flash ExternalInterface?
我在浏览器中有一个 Flash SWF 应用程序,我正在使用 ExternalInterface 与 JavaScript 文档进行通信。
在 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];
这看起来正确吗?
再次调用addCallback,将函数设置为null:
ExternalInterface.addCallback("callAlert", null);
文档中提到了这一点:ExternalInterface.addCallback()
Note: Repeating addCallback() on an existing callback function with a
null closure value removes the callback.
我在浏览器中有一个 Flash SWF 应用程序,我正在使用 ExternalInterface 与 JavaScript 文档进行通信。
在 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];
这看起来正确吗?
再次调用addCallback,将函数设置为null:
ExternalInterface.addCallback("callAlert", null);
文档中提到了这一点:ExternalInterface.addCallback()
Note: Repeating addCallback() on an existing callback function with a null closure value removes the callback.