var Local:LocalConnection=new LocalConnection();
Local.addEventListener(StatusEvent.STATUS,function(event:StatusEvent):void{
// This stuff should only be running once
});
可以应用许多侦听器,因此只应该删除它。所以基本上在调度此事件之后,可以有另一个侦听器用于同一个LocalConnection实例。
答案 0 :(得分:2)
您可以删除该匿名事件处理程序中的匿名事件处理程序,因为您始终拥有对当前函数的引用。
var Local:LocalConnection=new LocalConnection();
Local.addEventListener(StatusEvent.STATUS,function(event:StatusEvent):void{
// This stuff should only be running once
Local.removeEventListener(StatusEvent.STATUS, arguments.callee);
});
没有其他原生方法可以使事件侦听器只触发一次,必须删除侦听器。
答案 1 :(得分:2)
根据我的经验,在闪存中避免使用匿名函数几乎总是更好:
var local:LocalConnection = new LocalConnection();
local.addEventListener(StatusEvent.STATUS, statusHandler);
function statusHandler(event:StatusEvent):void{
local.removeEventListener(StatusEvent.STATUS, statusHandler);
}
此外,惯例是在变量的开头使用小写字母。
答案 2 :(得分:1)
是的,你可以:
Local.addEventListener(StatusEvent.STATUS,function(event:StatusEvent):void{
IEventDispatcher(event.currentTarget).removeEventListener(event.type, arguments.callee);
});