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

Verwenden von Movieclips<br />

Wenn ein Movieclip mehrere Bilder enthält, wird er bei der normalen Wiedergabe endlos durchlaufen, d. h. er wird<br />

nach dem letzten Bild wieder auf Bild 1 zurückgesetzt. Bei Verwendung von prevFrame() oder nextFrame() erfolgt<br />

dieses Verhalten nicht automatisch (wenn sich der Abspielkopf beim Aufruf von prevFrame() auf Bild 1 befindet,<br />

wird er nicht zum letzten Bild bewegt). Mit der if-Bedingung in diesem Beispiel wird überprüft, ob der Abspielkopf<br />

rückwärts zum ersten Bild bewegt wurde. In diesem Fall wird der Abspielkopf vorwärts zum letzten Bild bewegt,<br />

sodass eine Endlosschleife für den Movieclip entsteht, in der er rückwärts wiedergegeben wird.<br />

Springen zu anderen Bildern und Verwenden von Bildbeschriftungen<br />

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

Ein Movieclip kann ganz einfach auf ein neues Bild gesetzt werden. Durch Aufrufen von gotoAndPlay() oder<br />

gotoAndStop() springt der Movieclip zu der Bildnummer, die als Parameter angegeben ist. Alternativ können Sie<br />

einen String angeben, der dem Namen einer Bildbeschriftung entspricht. Jedem Bild in der Zeitleiste kann eine<br />

Beschriftung zugewiesen werden. Wählen Sie dazu ein Bild in der Zeitleiste aus und geben Sie dann im<br />

Eigenschafteninspektor im Feld „Bildbeschriftung“ einen Namen ein.<br />

Die Vorteile der Verwendung von Bildbeschriftungen anstelle von Bildnummern machen sich beim Erstellen<br />

komplexer Movieclips besonders bemerkbar. Wenn eine Animation viele Bilder, Ebenen und Tweens enthält, sollten<br />

Sie wichtige Bilder mit Beschriftungen versehen, die Änderungen in der Animation des Movieclips angeben (z. B.<br />

„off“, „walking“ oder „running“). Dies verbessert die Lesbarkeit des Codes und ermöglicht zudem eine flexible<br />

Verwendung, da es sich bei ActionScript-Aufrufen für ein beschriftetes Bild um Zeiger auf einen einzelnen Verweis<br />

(die Beschriftung) und nicht auf eine bestimmte Bildnummer handelt. Wenn Sie zu einem späteren Zeitpunkt ein<br />

bestimmtes Animationssegment in ein anderes Bild verschieben möchten, müssen Sie den ActionScript-Code nur<br />

ändern, wenn Sie für die Bilder an der neuen Position andere Beschriftungen verwenden.<br />

Mithilfe der FrameLabel-Klasse von ActionScript 3.0 können Bildbeschriftungen im Code verwendet werden. Jede<br />

Instanz dieser Klasse repräsentiert jeweils eine Bildbeschriftung und verfügt über eine name-Eigenschaft für den<br />

Namen der Bildbeschriftung im Eigenschafteninspektor und über eine frame-Eigenschaft für die Bildnummer des<br />

Bilds, für das die Beschriftung auf der Zeitleiste positioniert wird.<br />

Damit die mit einer MovieClip-Instanz verknüpften FrameLabel-Instanzen abgerufen werden können, enthält die<br />

MovieClip-Klasse zwei Eigenschaften, die direkt FrameLabel-Objekte zurückgeben. Mit der currentLabels-<br />

Eigenschaft wird ein Array zurückgegeben, das alle FrameLabel-Objekte in der gesamten Zeitleiste eines Movieclips<br />

enthält. Mit der currentLabel-Eigenschaft wird ein String zurückgegeben, der den Namen der zuletzt auf der<br />

Zeitleiste angetroffenen Bildbeschriftung enthält.<br />

Wenn Sie einen Movieclip mit dem Namen robot erstellen und die verschiedenen Animationsbewegungen mit<br />

Beschriftungen versehen haben, können Sie beispielsweise eine Bedingung festlegen, mit der die currentLabel-<br />

Eigenschaft überprüft wird, um die aktuelle Bewegung von robot abzurufen, wie im folgenden Codebeispiel<br />

dargestellt:<br />

if (robot.currentLabel == "walking")<br />

{<br />

// do something<br />

}<br />

In Flash Player 11.3 und AIR 3.3 wurde das frameLabel-Ereignis zur FrameLabel-Klasse hinzugefügt. Sie können der<br />

FrameLabel-Instanz, die eine Bildbeschriftung darstellt, eine Ereignisprozedur zuweisen. Das Ereignis wird abgesetzt,<br />

wenn der Abspielkopf in das Bild eintritt.<br />

Im folgenden Beispiel wird eine FrameLabel-Instanz für die zweite Bildbeschriftung im Array mit Bildbeschriftungen<br />

für den MovieClip erstellt. Dann wird eine Ereignisprozedur für das frameLabel-Ereignis registriert:<br />

Letzte Aktualisierung 27.6.2012<br />

345

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

Saved successfully!

Ooh no, something went wrong!