Flash AS3检查事件监听器

8

有没有办法检查事件监听器是否已经存在并将其删除?

stage.addEventListener(MouseEvent.CLICK, clickdownfunction);

基本上,我想要移除监听器,但有时它已经被移除了,所以我想检查它是否存在,如果存在,则将其移除。
这个可能吗?
4个回答

19

10

你无法检查特定函数是否已注册为监听器,但你可以检查类型是否已注册。可以通过以下方式完成:

hasEventListener(type:String):Boolean

如果没有注册事件,你可以直接调用removeEventListener,它会忽略这个调用。

希望能对你有所帮助。


我们有时候需要检查一个特定的事件,这并不太好。 - atilkan

5

如果事件监听器处于活动状态,您需要的代码是将其删除:

if(stage.hasEventListener(MouseEvent.CLICK))
     stage.removeEventListener(MouseEvent.CLICK, clickdownfunction);

1

你也可以使用Fingers

 on(stage).click -= clickdownfunction;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接