【发布时间】:2011-03-01 17:06:39
【问题描述】:
他们是否可以检查事件侦听器是否已存在以将其移除?
stage.addEventListener(MouseEvent.CLICK, clickdownfunction);
基本上,我想删除监听器,但有时它已经被删除了,所以我想检查它是否存在,如果存在,则将其删除。
这可能吗?
【问题讨论】:
标签: flash actionscript-3
他们是否可以检查事件侦听器是否已存在以将其移除?
stage.addEventListener(MouseEvent.CLICK, clickdownfunction);
基本上,我想删除监听器,但有时它已经被删除了,所以我想检查它是否存在,如果存在,则将其删除。
这可能吗?
【问题讨论】:
标签: flash actionscript-3
从
查看hasEventListener()函数
我不太确定您为什么要进行该检查。删除不存在的侦听器不会使 Flash 丢弃异常或错误,因此检查只会增加不必要的开销。
【讨论】:
您无法检查特定函数是否已注册为侦听器,但可以检查是否已注册类型。可以这样做:
hasEventListener(type:String):Boolean
或者你也可以直接拨打removeEventListener,如果它没有注册,它会忽略这个电话。
希望对你有帮助,
【讨论】:
以下是仅当事件侦听器处于活动状态时才需要删除它的代码:
if(stage.hasEventListener(MouseEvent.CLICK))
stage.removeEventListener(MouseEvent.CLICK, clickdownfunction);
【讨论】:
你也可以使用Fingers:
on(stage).click -= clickdownfunction;
【讨论】: