如果我有一个调用重复addEventListener调用是否会创建重复的侦听器条目?
addEventListener(Event.ENTER_FRAME, update);
addEventListener(Event.ENTER_FRAME, update);
意志加2个监听对象?
如果我有一个调用重复addEventListener调用是否会创建重复的侦听器条目?
addEventListener(Event.ENTER_FRAME, update);
addEventListener(Event.ENTER_FRAME, update);
意志加2个监听对象?
不,他们不会,所以更新只会在事件触发时调用一次。
取决于您将附加听众的内容。如果你附加到movieClipX和movieClipY,你将有两个侦听器,所以如果其中一个mcs被删除,你仍然会有另一个侦听器。如果您将同一个侦听器连接到同一个对象两次,它将表现为单个侦听器。
此外,为了完成对已经提供的答案,如果你这样做:
addEventListener(Event.ENTER_FRAME, update1);
addEventListener(Event.ENTER_FRAME, update2);
然后,它会执行两个功能。后面的addEventLister不会覆盖前一个,而是添加到现有的侦听器中,因为方法的名称意味着(除非已经添加了侦听器函数,在这种情况下,它将不会执行任何操作,如已接受的答案中所述) 。
太棒了!我有一个函数添加了需要多次调用的事件侦听器。我担心这会造成一些不良的副作用。 – user359519 2011-08-23 13:30:24
这是否适用于匿名函数? – ThorSummoner 2014-05-08 17:39:51
@ThorSummoner如果你多次定义了一个匿名函数(例如在循环中),每次都定义一个新函数。所以它不适用于匿名函数,除非你创建一次函数,将它保存在一个变量中,并将变量传递给你的'addEventListener'调用。无论如何,这是最好的做法。 – tomekwi 2015-01-09 11:49:43