MovieClips rückwärts abspielen


Animationen in Flash rückwärts ablaufen lassen
Sie wollen eine Animation rückwärts ablaufen lassen? Mit ActionScript ist dies kein Problem. Erfahren Sie alles über das entgegengesetzte Abspielen von MovieClips.
Kennen Sie folgendes Szenario? Sie erstellen beispielsweise eine Animation, um ein Objekt in das Bild hineinlaufen zu lassen. Zu einem späteren Zeitpunkt wollen Sie das gleiche Objekt wieder aus dem Bild herauslaufen lassen. Sie erstellen also eine zweite Animation, obwohl diese identisch zur ersten Animation ist. Sie läuft nur in entgegengesetzter Reihenfolge - von hinten nach vorne - ab. Im Folgenden wollen wir Ihnen zeigen, wie Sie auch mit einer Animation auskommen.

Erstellen Sie in einem neuen Dokument einen Kreis. Konvertieren Sie den Kreis sofort in ein Grafik-Symbol. Verschieben Sie die Instanz des Symbols anschließend links außerhalb des sichtbaren Bühnenbereiches. Rufen Sie erneut das Dialogfenster zum Konvertieren auf. Wählen Sie dieses Mal das Verhalten „MovieClip“. Begeben Sie sich in den Bearbeitungsmodus des soeben erzeugten MovieClip-Symbols. Markieren Sie das 25. Bild der Zeitleiste und erstellen Sie hier durch Betätigen der Funktionstaste F6 ein Schlüsselbild. Verschieben Sie den Kreis in diesem Bild in den sichtbaren Bereich der Bühne. Erstellen Sie daraufhin ein Bewegungs-Tween zwischen dem 1. und 25. Bild. Bei einem Test der Animation sollte der Kreis nun von links in das Bild laufen.

Begeben Sie sich zurück in die Hauptzeitleiste. Markieren Sie die Instanz des MovieClip-Symbols und rufen Sie anschließend das Aktionen-Fenster auf. Damit die Animation später auch rückwärts ablaufen kann, erstellen wir folgendes ActionScript:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
 onClipEvent (enterFrame) {
     if (_root.playBackwards) {
         if (_currentframe != 1) {
             this.gotoAndStop(_currentframe - 1);
         }
     } else {
         if (_currentframe <= _totalframes) {
             this.gotoAndStop(_currentframe + 1);
         }
     }
 }

In jedem Bildereignis überprüfen wir eine boolesche Variable „playBackwards“ auf den Wahrheitswert. Besitzt die Variable den Wert „true“, so ist die Bedingung der äußeren If-Struktur erfüllt und wir führen die nachfolgenden Anweisungen aus. Hier überprüfen wir in einer weiteren If-Bedingung die derzeitige Position des Abspielcursors mit „_currentframe“. Solange der Abspielcursor nicht im ersten Bild der Animation ist, setzen wir den Cursor um eine Bildposition zurück. Die Animation läuft somit rückwärts ab.
Besitzt die Variable „playBackwards“ den Wert „false“, so landen wir im Else-Zweig der äußeren If-Struktur. Hier setzen wir den Abspielcursor um eine Bildposition weiter, solange wir nicht das letzte Bild der Animation erreicht haben.
Den Wert der Variable „playBackwards“ und somit das Abspielen der Animation in richtiger und entgegengesetzter Richtung wollen wir über zwei Schaltflächen steuern. Erstellen Sie die besagten Schaltflächen auf der Hauptzeitleiste. Die erste Schaltfläche zum Abspielen in entgegengesetzter Richtung erhält folgendes ActionScript:

001:
002:
003:
 on(release){
     _root.playBackwards = true;
 }

Mit Hilfe der Anweisungen setzen wir „playBackwards“ auf den Wert „true“, sobald die Schaltfläche betätigt wird. Entsprechend wollen wir den Wert von „playBackwards“ mit Hilfe der zweiten Schaltfläche auf „false“ setzen. Hierfür sind folgende Anweisungen nötig:

001:
002:
003:
 on(release){
     _root.playBackwards = false;
 }

Das Script ist vollständig. Bei der Betrachtung der Flash-Datei sollte der Kreis zunächst von links in das Bild hineinlaufen, bis Sie die Schaltfläche zum Zurücklaufen betätigen oder der Kreis seine Zielposition erreicht hat. Nach dem Betätigen der Schaltfläche zum Zurücklaufen bewegt sich der Kreis zur Anfangsposition und verweilt hier, bis wir die zweite Schaltfläche betätigen.


Beispieldatei: MovieClips rückwärts abspielen [MovieClips_rueckwaerts_abspielen.zip]