Das ActionScript hier für ist genauso einfach, wie die Idee dahinter.
Es geht darum an einer entfernten Stelle eine Kopie des aktuellen Objektes zu stellen und das alte Objekt auszublenden. Je kleiner hier die Entfernung, desto langsamer die Bewegung. Dieser Vorgang muss so lange wiederholt werden, bis das Objekt die Bühne verlassen hat.
Zum Skript:
Als erstes ist ein Beispieltext auf der Bühne notwendig. Da Flash einen kleinen Bug bei dem erstellen von Tweens hat, wird dieser Text als erstes in eine Filmsequenz (MC) gewandelt. Der Name dieses sollte "text_mc" sein, damit man ihn später in der Bibliothek einfacher wiederfindet.
Dieser MC wird gleich wieder in einen weiteren MC gepackt. Da hier ein Alphafading erstellt wird, ist ein eindeutiger Name auch hier möglich.
In diesem Clip soll der "text_mc" im ersten Schlüsselbild 99% Alphaeigenschaften bekommen und im 10ten Schlüsselbild 1%. Der Weg zwischen den Bildern soll ein Bewegungstween sein. Weiter soll der MC im 10ten Schlüsselbild stoppen. ![cssbody=[boxover] cssheader=[boxoverheader] header=[Abbildung 1 - Zeitleiste des fade_mc´s] body=[<img src='uploads/pics/fade.gif'>] tooltipp](typo3conf/ext/sk_tutimglinks/tt.gif)
Ein kurzer Blick in die Bibliothek verrät, warum der Text vorher schon einmal in ein MC gewandelt wurde. Es befinden sich jetzt 2 Objekte in der Bibliothek.
Hätten wir die erste Wandlung nicht gemacht, wären es 3 Objekte. 2mal der Text und 1mal der Tween, wobei der Text einmal hätte gelöscht werden können, ohne den Film zu verändern. Dieses ist der angesprochene Bug von Flash und ist auch in MX nicht behoben wurden.
Zurück zur Aufgabe.
Der MC mit dem Tween wird Wiederrum in einen weiteren MC gepackt, sodaß eine Verschachtelung von 3 MC´s in einander stattgefunden hat.
Hier ist auch schon der größte Aufwand erledigt und das Programmieren des ActionScripts geht los.
Das Skript kommt direkt auf das Objekt auf der Bühne.
onClipEvent (load) {
// x gleich aktuelle Position
x = this._x;
// Speed (positiv = rechts; negativ = links)
xx = 5;
}
onClipEvent (enterFrame) {
// erhöhe Position auf 120%
xx = xx*1.2;
// aktuelle Position x um xx erhöhen
x = x+xx;
// neue Position zuweisen
this._x = x;
// Counter
n = n+1;
// mache neuen MovieClip
duplicateMovieClip (this, _root.lc, n);
// wenn Counter = 10
if (n == 10) {
// lösche diesen MovieClip
removeMovieClip (_root.lc);
}
Mit der Variable xx (dem Speed) und dem Multiplikator (xx = XX*1.2) jetzt noch so lange "spielen" bis die Geschwindigkeit an die eingestellte Bühnengröße paßt und fertig! Viel Spaß
Autor: (tb)