Vorbemerkung zu ActionScript

Movieclips als Container für visuelle Elemente und Sound

Flashmovies werden durch Movieclips strukturiert. Sie bilden die Bausteine aus denen ein Flashmovie und eine ShockwaveFlash-Datei (swf-Datei) aufgebaut sind.
Ein Movieclip ist durch die Timeline (Zeitleiste) in Frames (Bilder) gegliedert. Die Timeline enthält ein oder mehrere Frames, die in einer vordefinierten Framerate (Bildrate) (frames per second - fps bzw. Bilder pro Sekunde - BpS) nacheinander abgespielt werden.
Für jedes Frame wird dabei festgelegt, welche graphischen Elemente auf der Stage (Bühne) gezeigt und welche Sounds abgespielt werden.
Jedem Frame kann zusätzlich ein Programmcode (Script) zugeordnet werden, den der Prozessor ausführt unmittelbar bevor der Inhalt des Frames auf der Bühne gezeigt wird. Programmcode kann aber auch direkt grafischen Komponenten auf der Bühne zugeordnet werden.

Jedes Flashmovie, jede swf-Datei enthält genau ein Mainmovie mit einer Mainmovie-Timeline und der Mainstage. In der Autorenumgebung von Flash werden die Größe und Hintergrundfarbe der Mainstage sowie die Abspielrate vordefiniert. Diese Abspielrate gilt für alle Movieclips, die als Bausteine im Mainmovie verwendet werden. Ebenso werden alle Movieclips durch die Bühnengröße des Mainmovies beschnitten.

Eine swf-Datei (mit einem Mainmovie) wird mit Hilfe des FlashPlayers ausgeführt. Der FlashPlayer kann gleichzeitg mehrere swf-Dateien laden, diese in levels übereinanderlegen und abspielen.

Movieclips sind wiederverwendbare Bausteine, Container mit einer eigenen Timeline und einem visuellen Interface, die selbst wiederum Movieclips als Elemente enthalten können. Movieclips können daher beliebig tief geschachtelt werden. Ein Movieclip als Element eines anderen Movieclips kann dabei als Ganzes durch Ändern von Movieclip-Eigenschaften (wie z.B. Position, Transparenz, Rotation) bearbeitet werden. Die Eigenschaften lassen sich sowohl in der Autorenumgebung von Flash als auch zur Laufzeit (= während der Ausführung der swf-Datei im FlashPlayer) über ActionScript einstellen.


Abb.: Jeder Movieclip besitzt seine eigene Timeline. Die Geschwindigkeit mit der der Abspielkopf (rotes Rechteck) von Frame zu Frame springt ist durch die Bildrate des Mainmovies bestimmt.
Der graue und gedrehte gelbe Movieclipcontainer sind Elemente des Mainmovie-Containers und liegen übereinander. Der grüne Movieclip ist ein Element des gelben Containers und wurde als Submovieclip bei der Drehung des übergeodneten gelben Movieclips automatisch mitgedreht.
Der gelbe Container wird durch die Bühne des Mainmovies (Mainstage) beschnitten.

Grundeinstellungen für eine reine ActionScript-Anwendung

Ein reines ActionScript-Programm in seiner einfachsten Form besteht nur aus dem Mainmovie mit einem einzigen Frame in der Timeline und einer Ebene (meist als Scripts benannt), wo der ActionScript-Code plaziert wird. Wenn Frame 1 der Scripts-Ebene ausgwählt ist, kann man im Aktionen-Fenster (F9) den ActionScript-Code eintippen.
Vorher muss man jedoch im Eigenschaften-Fenster (Strg+F3) die Bühnegröße und Hintergrundfarbe einstellen.


Abb.: Ein reines ActionScript-Programm.

Movieclips als Objekte mit Eigenschaften und Fähigkeiten (Methoden)

In dieser Übung sollen mit Hilfe der Programmiersprache ActionScript wesentliche Programmiersprachkonstrukte Schritt für Schritt erarbeitet werden. Das soll an Hand von Grafiken geschehen, die mittels ActionScript in Movieclips gezeichnet werden. Daher ist es notwendig, einen kurzen objektorientierten Blick auf Movieclips zu werfen, ohne hier jedoch genauer auf objektorientierte Programmierung einzugehen:

Ganz allgemein lässt sich sagen, dass man Lebewesen, Gegenstände usw. (hier kurz Objekte genannt) durch ihre statischen Eigenschaften (ihren Zustand) und dynamischen Fähigkeiten beschreiben kann.
Z.B. ist ein Mensch 175 cm groß, hat braune Augen, schwarze lange Haare (= Eigenschaften) und kann Klavier spielen, Rad fahren (= Fähigkeiten). Manche Eigenschaften sind unveränderbar, andere jedoch nicht. Wie z.B. die Länge der Haare, die durch jemanden, der die Fähigkeit dazu hat, geschnitten werden können. Fähigkeiten werden situationsabhängig "aufgerufen", wie z.B. mit dem Rad in die Arbeit fahren. Die Anwendung einer Fähigkeit, Fertigkeit (hier kurz Methode genannt) führt in der Regel zu einer Zustandsveränderung.

Bei Geräten kann man nun einen Bauplan (Konstruktionsanweisung, blue print) erstellen, nach dem baugleiche Geräte (mit leichten Variationen) erzeugt werden können. Z.B. können tausende baugleiche Autos, die sich nur in der Lackfarbe, in der Sitzpolsterung usw. unterscheiden, erzeugt werden.

In der objektorientierten Programmierung kann man auch solche "Baupläne" erstellen, nur werden sie hier Klassen genannt. Eine Klasse wird definiert durch ihre Eigenschaften und Methoden.
Eine konkrete "Realisierung" einer Klasse wird Objekt genannt. Ein Objekt ist eine Instanz einer Klasse.

In diesem Sinn ist jeder Movieclip in einem Flash-Film ein Movieclip-Objekt und eine Instanz der MovieClip-Klasse, die von den Entwicklern von Flash und ActionScript schon vordefiniert und in das System integriert wurde. Sie haben dadurch Movieclip-Eigenschaften definiert, die wir abrufen und verändern können. Ebenso haben sie Methoden zur Verfügung gestellt, die wir aufrufen können, um z.B. eine Linie in einem Movieclip zu zeichnen.

Um eine Objekteigenschaft oder -methode ansprechen zu können, muss mann immer zuerst das Objekt an sich ansprechen und anschließend die Eigenschaft oder Methode. Formal geschieht das über die sogenannte Punktnotation:

objektname.eigenschaft
objektname.methode

Beispiel:
mc._alpha beschreibt die Eigenschaft Transparenzwert  _alpha des Movieclip-Objekts mc
mc.lineTo(50,100) ruft im Movieclip-Objekt mc die Methode lineTo auf, um eine Linie zum Punkt (50|100) zu zeichnen.


ActionScript-Hilfe

Welche Eigenschaften und Methoden die MovieClip-Klasse zur Verfügung stellt, lässt sich über die FlashHilfe (F1) abrufen:


Abb.: Zugang zur MovieClip-Klasse im ActionScript-Referenzhandbuch


Abb.: Zugang zur MovieClip-Klasse und zu allen Eigenschaften und Methoden im ActionScript-Index