javascript - Flash ExternalInterface 是否有等效于 removeCallback 的方法?

标签 javascript actionscript-3 flash air

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

关于javascript - Flash ExternalInterface 是否有等效于 removeCallback 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41645344/

相关文章:

javascript - 如何在 Laravel 8 中使用 JavaScript 获取?

actionscript-3 - 在 Flash as3 网络摄像头录像机中如何在连接丢失后重新连接或重新发布

java - 多个文件上传(偶数文件夹)

apache-flex - 如何防止 itemRenderer 中的容器超出列表容器的宽度?

java - 网络浏览器中的录音小程序/Flash

actionscript-3 - Flex 4.6 检查 creationComplete 是否已经发生

javascript - highcharts - 根据 y 值改变区域的颜色

javascript - HtmlUnit click() div 不会触发 JavaScript

javascript - 如何正确设置标签和文本框填充?

android - 当应用程序在 Dell Venue 8 7840 上运行时,cacheAsBitmap 导致 Adob​​e Air 中 GPU 渲染模式出现图形故障