首先简单介绍一下我的网站是如何运作的: 单击链接时,它会检查屏幕左侧或右侧是否已显示某些内容(该网站看起来像一本书,所以我有一个要显示信息的左页和一个右页)。如果已经有东西显示,它会隐藏它并显示新对象,同时它会启用该对象内的所有按钮(我有单独的函数来设置每个对象)。
此类事件监听器的示例如下:
pathTo.Button1.addEventListener(MouseEvent.CLICK, function():void {showText(side, object)});
我想做的是删除所有先前设置的EventListeners,而不必创建单独的函数来删除每个对象内的链接。
简短版本:如何删除另一个对象内所有对象上的所有 EventListener?我想要存储的唯一变量是包含所有内容的对象。然而,对象内并不总是有事件监听器。
最佳答案
您可以使用检查现有的事件监听器
hasEventListener(Event.TYPE)
您可以使用删除事件监听器
removeEventListener(Event.TYPE, listenerFunc)
请注意,您必须拥有对listenerFunc 的引用才能删除事件监听器。
关于flash - AS3 : Removing EventListeners without knowing amount or names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2732165/