Ein Movieclip kann ganz einfach auf ein neues Bild gesetzt werden. Durch Aufrufen von
gotoAndPlay()
oder
gotoAndStop()
springt der Movieclip zu der Bildnummer, die als Parameter angegeben ist. Alternativ können Sie einen String angeben, der dem Namen einer Bildbeschriftung entspricht. Jedem Bild in der Zeitleiste kann eine Beschriftung zugewiesen werden. Wählen Sie dazu ein Bild in der Zeitleiste aus und geben Sie dann im Eigenschafteninspektor im Feld „Bildbeschriftung“ einen Namen ein.
Die Vorteile der Verwendung von Bildbeschriftungen anstelle von Bildnummern machen sich beim Erstellen komplexer Movieclips besonders bemerkbar. Wenn eine Animation viele Bilder, Ebenen und Tweens enthält, sollten Sie wichtige Bilder mit Beschriftungen versehen, die Änderungen in der Animation des Movieclips angeben (z. B. „off“, „walking“ oder „running“). Dies verbessert die Lesbarkeit des Codes und ermöglicht zudem eine flexible Verwendung, da es sich bei ActionScript-Aufrufen für ein beschriftetes Bild um Zeiger auf einen einzelnen Verweis (die Beschriftung) und nicht auf eine bestimmte Bildnummer handelt. Wenn Sie zu einem späteren Zeitpunkt ein bestimmtes Animationssegment in ein anderes Bild verschieben möchten, müssen Sie den ActionScript-Code nur ändern, wenn Sie für die Bilder an der neuen Position andere Beschriftungen verwenden.
Mithilfe der FrameLabel-Klasse von ActionScript 3.0 können Bildbeschriftungen im Code verwendet werden. Jede Instanz dieser Klasse repräsentiert jeweils eine Bildbeschriftung und verfügt über eine
name
-Eigenschaft für den Namen der Bildbeschriftung im Eigenschafteninspektor und über eine
frame
-Eigenschaft für die Bildnummer des Bilds, für das die Beschriftung auf der Zeitleiste positioniert wird.
Damit die mit einer MovieClip-Instanz verknüpften FrameLabel-Instanzen abgerufen werden können, enthält die MovieClip-Klasse zwei Eigenschaften, die direkt FrameLabel-Objekte zurückgeben. Mit der
currentLabels
-Eigenschaft wird ein Array zurückgegeben, das alle FrameLabel-Objekte in der gesamten Zeitleiste eines Movieclips enthält. Mit der
currentLabel
-Eigenschaft wird ein String zurückgegeben, der den Namen der zuletzt auf der Zeitleiste angetroffenen Bildbeschriftung enthält.
Wenn Sie einen Movieclip mit dem Namen
robot
erstellen und die verschiedenen Animationsbewegungen mit Beschriftungen versehen haben, können Sie beispielsweise eine Bedingung festlegen, mit der die
currentLabel
-Eigenschaft überprüft wird, um die aktuelle Bewegung von
robot
abzurufen, wie im folgenden Codebeispiel dargestellt:
if (robot.currentLabel == "walking")
{
// do something
}
In Flash Player 11.3 und AIR 3.3 wurde das
frameLabel
-Ereignis zur FrameLabel-Klasse hinzugefügt. Sie können der FrameLabel-Instanz, die eine Bildbeschriftung darstellt, eine Ereignisprozedur zuweisen. Das Ereignis wird abgesetzt, wenn der Abspielkopf in das Bild eintritt.
Im folgenden Beispiel wird eine FrameLabel-Instanz für die zweite Bildbeschriftung im Array mit Bildbeschriftungen für den MovieClip erstellt. Dann wird eine Ereignisprozedur für das
frameLabel
-Ereignis registriert:
var myFrameLabel:FrameLabel = robot.currentLabels[1];
myFrameLabel.addEventListener(Event.FRAME_LABEL, onFrameLabel);
function onFrameLabel(e:Event):void {
//do something
}