他们是否可以检查是否已存在事件监听器以将其删除?
stage.addEventListener(MouseEvent.CLICK, clickdownfunction);
基本上,我想删除监听器,但有时它已被删除,所以我想检查它是否存在以及是否存在,然后将其删除。
这可能吗?
答案 0 :(得分:16)
从
中查看hasEventListener()
功能
我不确定你为什么要做那个检查。删除不存在的侦听器不会使Flash丢弃异常或错误,因此检查只是增加了不必要的开销。
答案 1 :(得分:8)
您无法检查特定功能是否已注册为侦听器,您可以检查是否已注册类型。这可以通过以下方式完成:
hasEventListener(type:String):Boolean
或者你只需拨打removeEventListener
即可,如果它没有注册,它只会忽略通话。
希望有所帮助,
答案 2 :(得分:3)
以下是仅当事件侦听器处于活动状态时才需要删除它的代码:
if(stage.hasEventListener(MouseEvent.CLICK))
stage.removeEventListener(MouseEvent.CLICK, clickdownfunction);
答案 3 :(得分:1)
您还可以使用Fingers:
on(stage).click -= clickdownfunction;