Jeśli mam obiekt, który wywołujePowielenie wywołań addEventListener spowoduje utworzenie duplikatów wpisów?
addEventListener(Event.ENTER_FRAME, update);
addEventListener(Event.ENTER_FRAME, update);
że wolę dodać 2 słuchaczy?
Jeśli mam obiekt, który wywołujePowielenie wywołań addEventListener spowoduje utworzenie duplikatów wpisów?
addEventListener(Event.ENTER_FRAME, update);
addEventListener(Event.ENTER_FRAME, update);
że wolę dodać 2 słuchaczy?
Nie, nie będą, więc aktualizacja zostanie wywołana tylko raz, gdy wydarzenie się uruchomi.
Zależy od tego, do czego przyłączysz słuchaczy. Jeśli przyłączysz się do movieClipX i do movieClipY, będziesz miał dwóch słuchaczy, więc jeśli jeden z mcs zostanie usunięty, nadal będziesz miał drugiego słuchacza. Jeśli połączysz tego samego detektora z tym samym obiektem dwa razy, zachowa się on jak pojedynczy detektor.
Ponadto, aby zakończyć na już dostarczonych odpowiedzi, jeśli nie:
addEventListener(Event.ENTER_FRAME, update1);
addEventListener(Event.ENTER_FRAME, update2);
Wtedy będzie wykonać obie te funkcje. Później addEventLister NIE nadpisze poprzedniego, ale doda do istniejących detektorów, jak wskazuje nazwa metody (z wyjątkiem sytuacji, gdy funkcja detektora została już dodana, w takim przypadku nie zrobi nic, jak już stwierdzono w zaakceptowanej odpowiedzi) .
To świetnie! Mam funkcję, która dodaje detektory zdarzeń, które muszę wielokrotnie wywoływać. Byłem zaniepokojony tym, powodując pewne złe efekty uboczne. – user359519
czy dotyczy to funkcji anonimowych? – ThorSummoner
@ThorSummoner jeśli zdefiniujesz anonimową funkcję więcej niż jeden raz (np. W pętli), nowa funkcja jest definiowana za każdym razem. Więc nie będzie działać z anonimowymi funkcjami, chyba że raz utworzysz funkcję, zapiszesz ją w zmiennej i przekażesz zmienną do twojego wywołania 'addEventListener'. To i tak najlepsza praktyka. – tomekwi