15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Verarbeiten von Ereignissen<br />

Beachten Sie, dass sich das Schlüsselwort this auf die ChildSprite-Instanz mit dem Namen child bezieht. Dieses<br />

Verhalten ist anders als in ActionScript 2.0. Wenn Sie in ActionScript 2.0 Komponenten verwendet haben, erinnern<br />

Sie sich möglicherweise noch daran, dass beim Übergeben einer Klassenmethode an<br />

UIEventDispatcher.addEventListener() der Gültigkeitsbereich dieser Methode an die Komponente gebunden<br />

war, mit der das Ereignis gesendet wurde, und nicht an die Klasse, in der die Listener-Methode definiert wurde. Anders<br />

ausgedrückt, bezieht sich bei Verwendung dieser Technik in ActionScript 2.0 das Schlüsselwort this nicht auf die<br />

ChildSprite-Instanz, sondern auf die Komponente, mit der das Ereignis gesendet wird.<br />

Dies stellte für einige Programmierer ein großes Problem dar, da sie deshalb nicht auf die anderen Methoden und<br />

Eigenschaften der Klasse zugreifen konnten, in der die Listener-Methode definiert war. Zum Umgehen des Problems<br />

konnten ActionScript 2.0-Programmierer die mx.util.Delegate-Klasse verwenden, um den Gültigkeitsbereich der<br />

Listener-Methode zu ändern. Dies ist nun jedoch nicht mehr erforderlich, da in ActionScript 3.0 beim Aufrufen von<br />

addEventListener() eine gebundene Methode erstellt wird. Dies führt dazu, dass sich das Schlüsselwort this auf<br />

die ChildSprite-Instanz mit dem Namen child bezieht und Programmierer Zugriff auf die anderen Methoden und<br />

Ereignisse der ChildSprite-Klasse haben.<br />

Zu vermeidende Ereignis-Listener<br />

Es liegt ein drittes Verfahren vor, bei dem Sie ein generisches Objekt mit einer Eigenschaft erstellen, die auf eine<br />

dynamisch zugewiesene Listener-Funktion verweist. Dieses Verfahren wird jedoch nicht empfohlen. Es wird hier<br />

erläutert, da es in ActionScript 2.0 ein gängiges Verfahren darstellte, es sollte jedoch in ActionScript 3.0 nicht<br />

verwendet werden. Dieses Verfahren wird nicht empfohlen, weil das Schlüsselwort this auf das globale Objekt und<br />

nicht auf das Listener-Objekt verweist.<br />

Das folgende Beispiel ist mit dem vorangegangenen für die ClickExample-Klasse identisch. Die Listener-Funktion ist<br />

jedoch als Bestandteil eines generischen Objekts mit dem Namen myListenerObj definiert:<br />

Letzte Aktualisierung 27.6.2012<br />

146

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

Saved successfully!

Ooh no, something went wrong!