15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Verarbeiten von Ereignissen<br />

Der Parameter priority der addEventListener()-Methode ist kein offizieller Bestandteil des DOM3-<br />

Ereignismodells. Er wurde in ActionScript 3.0 aufgenommen, um eine höhere Flexibilität beim Organisieren von<br />

Ereignis-Listenern zu ermöglichen. Beim Aufrufen von addEventListener() können Sie die Priorität des jeweiligen<br />

Ereignis-Listeners festlegen, indem Sie als priority-Parameter einen Ganzzahlwert übergeben. Der Standardwert ist<br />

0. Sie können jedoch sowohl negative als auch positive Werte angeben. Je größer die Zahl ist, desto eher wird der<br />

entsprechende Ereignis-Listener abgearbeitet. Ereignis-Listener mit derselben Priorität werden in der Reihenfolge des<br />

Hinzufügens abgearbeitet. Je eher ein Listener hinzugefügt wurde, desto eher wird er auch abgearbeitet.<br />

Mit dem Parameter useWeakReference können Sie festlegen, ob es sich um einen schwachen oder normalen Verweis<br />

auf die Listener-Funktion handelt. Durch Festlegen von true für diesen Parameter können Sie Situationen vermeiden,<br />

in denen Listener-Funktionen im Speicher zurückbleiben, auch wenn sie nicht mehr benötigt werden. In Flash Player<br />

und AIR wird ein Verfahren mit der Bezeichnung Garbage Collection (automatische Speicherbereinigung) verwendet,<br />

um nicht mehr verwendete Objekte aus dem Speicher zu entfernen. Objekte gelten als nicht mehr verwendet, wenn<br />

keine Verweise auf sie vorhanden sind. Bei der Speicherbereinigung werden schwache Verweise nicht berücksichtigt.<br />

Das bedeutet, dass Listener-Funktionen mit ausschließlich schwachen Verweisen bei der Speicherbereinigung entfernt<br />

werden.<br />

Entfernen von Ereignisprozeduren<br />

Mit der removeEventListener()-Methode können Sie einen Ereignis-Listener entfernen, den Sie nicht mehr<br />

benötigen. Es empfiehlt sich, alle nicht mehr benötigten Listener zu entfernen. Erforderliche Parameter sind<br />

eventName und listener, die identisch sind mit den erforderlichen Parametern für die addEventListener()-<br />

Methode. Rufen Sie sich in Erinnerung, dass in allen Phasen des Ereignisablaufs auf das Ereignis gewartet werden<br />

kann, wenn Sie addEventListener() zweimal aufrufen: einmal mit dem Wert true für useCapture und einmal mit<br />

dem Wert false. Damit beide Ereignis-Listener wieder entfernt werden, müssen Sie removeEventListener()<br />

ebenfalls zweimal aufrufen: einmal mit dem Wert true für useCapture und einmal mit dem Wert false.<br />

Auslösen von Ereignissen<br />

Erfahrene Programmierer können die dispatchEvent()-Methode einsetzen, um ein benutzerdefiniertes<br />

Ereignisobjekt in den Ereignisablauf einzufügen. Der einzige für diese Methode zulässige Parameter ist ein Verweis<br />

auf ein Ereignisobjekt, das eine Instanz der Event-Klasse oder einer ihrer Unterklassen sein muss. Nach dem Auslösen<br />

des Ereignisses ist als target-Eigenschaft des Ereignisobjekts das Objekt eingetragen, für das dispatchEvent()<br />

aufgerufen wurde.<br />

Überprüfen auf vorhandene Ereignis-Listener<br />

Die letzten beiden Methoden der IEventDispatcher-Schnittstelle stellen nützliche Informationen über das<br />

Vorhandensein von Ereignis-Listenern bereit. Die hasEventListener()-Methode gibt true zurück, wenn für einen<br />

bestimmten Ereignistyp und das angegebene Anzeigelistenobjekt ein Ereignis-Listener gefunden wurde. Die<br />

willTrigger()-Methode gibt ebenfalls true zurück, wenn für ein bestimmtes Anzeigelistenobjekt ein Ereignis-<br />

Listener gefunden wurde. Bei willTrigger() wird jedoch nicht nur dieses eine Objekt in der Anzeigeliste überprüft,<br />

sondern für alle Phasen des Ereignisablaufs auch alle Vorgänger dieses Objekts.<br />

Letzte Aktualisierung 27.6.2012<br />

149

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!