Actionscript 3 如何删除addCallback?

Actionscript 3 如何删除addCallback?,actionscript-3,addcallback,Actionscript 3,Addcallback,我有一个Flash游戏,可以发送和接收来自JavaScript的大量消息。 有时我需要停止监听其中一些函数,但ExternalInterface没有removeCallback函数。所以我在做一件丑陋的事情:使用布尔值来验证每个函数中是否有回调 有更好的解决办法吗 ExternalInterface.addCallback("callAlert", callAlert); function callAlert(msg:String){ if(callAlertAvailable){

我有一个Flash游戏,可以发送和接收来自JavaScript的大量消息。 有时我需要停止监听其中一些函数,但ExternalInterface没有removeCallback函数。所以我在做一件丑陋的事情:使用布尔值来验证每个函数中是否有回调

有更好的解决办法吗

ExternalInterface.addCallback("callAlert", callAlert);
function callAlert(msg:String){
   if(callAlertAvailable){
      //...
   }
}

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

ExternalInterface.addCallback("callAlert", null);
为什么不看这些文件呢?我在这里找到的:

注意:使用 null闭包值删除回调


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

ExternalInterface.addCallback("callAlert", null);
为什么不看这些文件呢?我在这里找到的:

注意:使用 null闭包值删除回调


注意:这实际上并不很好,当回调还没有添加时-从JS调用该方法显示“UncaughtTypeError:UndefinedisnotaFunction”,当它与上述方法一起删除时-它将显示“UncaughtError:ErrorcallingmethodonnPObject.”。因此,它工作起来不是很干净。我尝试用这段代码删除它,但当web调用removed event:[Fault]exception,information=TypeError:error#1009:无法访问空对象引用的属性或方法时出现错误。在flash.external::ExternalInterface$/\u callIn()注意:如果还没有添加回调,那么实际上效果并不好-从JS调用该方法时,在使用上述方法删除该方法时,会显示“Uncaught TypeError:undefined is not a function”-它将显示“Uncaught Error:在NPObject上调用方法时出错”。因此,它工作起来不是很干净。我尝试用这段代码删除它,但当web调用removed event:[Fault]exception,information=TypeError:error#1009:无法访问空对象引用的属性或方法时出现错误。at flash.external::ExternalInterface$/\u callIn()