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 />

Die Entwicklung von Komponenten für ActionScript 2.0 brachte ein weiteres Ereignismodell mit sich. Dieses neue<br />

Modell, verkörpert durch die UIEventDispatcher-Klasse, basierte auf einem Teilbereich der DOM-<br />

Ereignisspezifikation. Für Entwickler, die mit der Komponentenereignisverarbeitung vertraut sind, gestaltet sich der<br />

Übergang zum neuen Ereignismodell von ActionScript 3.0 relativ problemlos.<br />

Leider gibt es zahlreiche Überschneidungen bei der in den verschiedenen Ereignismodellen verwendeten Syntax sowie<br />

einige Abweichungen. Beispielsweise können in ActionScript 2.0 einige Eigenschaften wie etwa<br />

TextField.onChanged entweder als Callback-Funktion oder als Ereignis-Listener verwendet werden. Die Syntax<br />

zum Registrieren von Listener-Objekten unterscheidet sich jedoch in Abhängigkeit davon, ob Sie die<br />

UIEventDispatcher-Klasse oder eine der sechs Klassen verwenden, die Listener unterstützen. Für die Key-, Mouse-,<br />

MovieClipLoader-, Selection-, Stage- und TextField-Klassen wird die addListener()-Methode verwendet, für die<br />

Komponentenereignisverarbeitung jedoch die addEventListener()-Methode.<br />

Eine weitere durch die unterschiedlichen Ereignisverarbeitungsmodelle hervorgerufene Schwierigkeit liegt darin, dass<br />

der Gültigkeitsbereich der Ereignisprozedurfunktion je nach verwendetem Mechanismus große Unterschiede<br />

aufweist. Mit anderen Worten, die Bedeutung des Schlüsselworts this ist in den jeweiligen<br />

Ereignisverarbeitungssystemen nicht konsistent.<br />

Ereignisverarbeitung in ActionScript 3.0<br />

Flash Player 9 und höher, Adobe AIR 1.0 und höher<br />

Mit ActionScript 3.0 wird ein einziges Ereignisverarbeitungsmodell eingeführt, das die vielen unterschiedlichen<br />

Ereignisverarbeitungsmechanismen der Vorgängerversionen ersetzt. Das neue Ereignismodell beruht auf der DOM3-<br />

Ereignisspezifikation (Document Object Model Level 3). Obwohl sich das SWF-Dateiformat nicht speziell an den<br />

DOM-Standard hält, liegen genug Ähnlichkeiten zwischen der Anzeigeliste und der DOM-Struktur vor, um die<br />

Implementierung des DOM-Ereignismodells zu ermöglichen. Ein Objekt in der Anzeigeliste entspricht einem Knoten<br />

in der hierarchischen DOM-Struktur. Die Begriffe Anzeigelistenobjekt und Knoten werden im Folgenden synonym<br />

verwendet.<br />

Die Flash Player- und AIR-Implementierung des DOM-Ereignismodells enthält ein neues Konzept: das<br />

Standardverhalten. Ein Standardverhalten ist eine Aktion, die in Flash Player bzw. AIR als normale Reaktion auf<br />

bestimmte Ereignisse ausgeführt wird.<br />

Standardverhalten<br />

Normalerweise sind Entwickler dafür zuständig, Code zu schreiben, mit dem auf Ereignisse reagiert wird. In einigen<br />

Fällen ist die Zuordnung eines Verhaltens zu einem Ereignis jedoch so üblich, dass Flash Player bzw. AIR das<br />

Verhalten automatisch ausführt, wenn der Entwickler nicht Code hinzufügt, um dies zu verhindern. Da das<br />

Ausführen dieser Verhalten in Flash Player bzw. AIR automatisch erfolgt, werden diese als Standardverhalten<br />

bezeichnet.<br />

Wenn ein Benutzer beispielsweise Text in ein TextField-Objekt eingibt, wird in der Regel davon ausgegangen, dass<br />

dieser Text im TextField-Objekt angezeigt wird. Deshalb ist dieses Verhalten in Flash Player und AIR integriert. Wenn<br />

dieses Standardverhalten nicht auftreten soll, können Sie es mithilfe des neuen Ereignisverarbeitungssystems<br />

unterdrücken. Wenn Benutzer Text in ein TextField-Objekt eingeben, wird in Flash Player bzw. AIR eine Instanz der<br />

TextEvent-Klasse erstellt, die diese Benutzereingabe repräsentiert. Um zu verhindern, dass Flash Player bzw. AIR den<br />

Text im TextField-Objekt anzeigt, müssen Sie auf diese TextEvent-Instanz zugreifen und die entsprechende<br />

preventDefault()-Methode aufrufen.<br />

Es können jedoch nicht alle Standardverhalten verhindert werden. Beispielsweise erzeugen Flash Player und AIR ein<br />

MouseEvent-Objekt, wenn ein Benutzer auf ein Wort in einem TextField-Objekt doppelklickt. Durch das<br />

Standardverhalten, das nicht unterdrückt werden kann, wird das Wort unter dem Mauszeiger markiert.<br />

Letzte Aktualisierung 27.6.2012<br />

136

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

Saved successfully!

Ooh no, something went wrong!