2010-05-04 14 views

risposta

14

No, non lo faranno, quindi l'aggiornamento verrà chiamato una sola volta quando l'evento si innesca.

+0

È fantastico! Ho una funzione che aggiunge listener di eventi che devo chiamare più volte. Ero preoccupato per questo causando alcuni effetti collaterali negativi. – user359519

+1

si applica alle funzioni anonime? – ThorSummoner

+4

@ThorSummoner se si definisce una funzione anonima più di una volta (ad esempio in un ciclo), una nuova funzione viene definita ogni volta. Quindi non funzionerà con le funzioni anonime a meno che non si crei una volta la funzione, la si salvi in ​​una variabile e si passi la variabile alla chiamata 'addEventListener'. Questa è comunque la migliore pratica. – tomekwi

3

Dipende da ciò a cui si collegano gli ascoltatori. Se si allega a movieClipX e a movieClipY, avrai due ascoltatori, quindi se uno dei mcs viene rimosso avrai ancora l'altro listener. Se si collega lo stesso listener allo stesso oggetto due volte, si comporterà come un singolo listener.

1

Inoltre, per completare sulle risposte già previsti, se si fa:

addEventListener(Event.ENTER_FRAME, update1); 
addEventListener(Event.ENTER_FRAME, update2); 

Poi eseguirà entrambe le funzioni. Il successivo addEventLister NON sovrascriverà il precedente, ma aggiungerà ai listener esistenti, come implica il nome del metodo (tranne se la funzione listener è già stata aggiunta, nel qual caso non farà nulla, come già affermato nella risposta accettata) .

Problemi correlati