|
Eine Animation, die aus dem schon bekannten Läufer aus "Get the Ball" und einem sich bewegenden Boden
besteht. Der sich bewegende Boden wird mit folgendem Actionscript (im 1.Frame) erzeugt:
for( i=0; i<21; i+=2 )
{
duplicateMovieClip(_root.ilinie,"ilinie"+i,i); // Linie 'ilinie' duplizieren
setProperty (_root["ilinie"+i], _y, (200+i*i/2)); // neuer, größer werdender Abstand
setProperty (_root["ilinie"+i], _alpha, i*5+40); // erzeugt heller werdende Linie
}
Dabei wird eine Linie mit dem Befehl duplicateMovieClip() dupliziert. Der Eindruck einer Tiefe entsteht
zum einen dadurch, dass der Abstand der Linien nicht linear sondern mit der Formel ( 200 + i * i / 2 ) mit größer
werdendem y immer größer wird. Zusätzlich werden über die Formel die den Alphawert berechnet ( i * 5 + 40 ) die
Linien von einem dunklen Wert mit größer werdendem y-Wert immer heller.
Die Bewegung des Untergrundes wird über das folgende Actionscript gesteuert (auf dem MC 'ilinie'):
onClipEvent(load)
{
_root.ilinie._alpha=0; // Setzt die ursprüngliche Linie auf unsichtbar
swert=0; // Variable für die Verschiebung
}
onClipEvent(enterFrame)
{
for( i=0; i<21; i+=2 )
{
setProperty (_root["ilinie"+i], _y, (200+(swert+i)*(swert+i)/2));
}
swert+=0.4;
if(swert >= 2)swert=0;
}
Das Vorgehen ist folgendes: Innerhalb der for-Schleife wird der zu Begin gezeichnete Satz von Linien
verschoben. Dabei muß berücksichtigt werden, dass die Verschiebung mit größer werdenden y ebenfalls
größer wird. Dies wird dadurch erreicht, dass zu der Laufvariablen i der Inhalt der Variablen 'swert'
hinzuaddiert wird: ( 200 + ( swert + i ) * ( swert + i ) / 2 ). Dadurch dass 'swert' danach um 0.4 erhöht wird, wird der
nächste Satz von Linien abermals etwas tiefer erzeugt. Erreicht 'swert' den Wert 2, so wird 'swert' wieder
auf 0 gesetzt. Dies hat zur Folge, dass insgesamt 5 Sätze von Linien erzeugt werden, die immer um einen
gewissen Wert gegenüber dem vorherigen Satz verschoben sind.
Wichtig ist auch, dass die Veränderung der Variable 'swert' ebenso wie der Wert, wann diese zurückgesetzt
wird, auf die Schrittweite der beiden for-Schleifen abgestimmt ist, damit ein flüssiger Übergang erreicht
wird.
|
|