4.7 Objekte
Wer vor langer Zeit Programmieren gelernt hat, fürchtet sich bei einer neuen Programmiersprache meistens vor gar nichts, außer vor der Objektorientierung. Für Neustarter, die bisher noch nicht programmiert haben, sind Objekte wesentlich leichter zu verstehen. Wir wollen beiden Seiten und allen Vorstellungen den Schrecken nehmen: Objektorientierung3 ist einfacher als Sie annehmen. Wir beginnen von vorne und klären die wichtigsten Begriffe.
Ein Objekt ist etwas Reales, Greifbares – genauso wie ein Kaktus oder ein Stuhl, ein Auto und so weiter. In Flash ist beispielsweise ein MovieClip ein Objekt oder eine UI-Komponente.
Ein Objekt hat einen Namen, der alleine aber nicht viel über das Objekt aussagt. Mit ihm können Sie noch wenig anfangen, deswegen sollte ein Objekt in der Programmierung Eigenschaften und Methoden besitzen. Eine Eigenschaft hat für jedes Objekt einen Wert – ähnlich wie eine Variable. Eine Methode bewirkt etwas, sie hat also Anweisungen zur Folge – ähnlich wie eine Funktion. Um bei den praktischen Beispielen zu bleiben: Das Objekt Auto besitzt die Eigenschaft sitze. Der Wert dieser Eigenschaft kann je nach Auto 1, 2, 4 oder 5 betragen. Ein Objekt in Flash ist ebenfalls mit Eigenschaften und Methoden ausgestattet: Ein MovieClip besitzt beispielsweise die Eigenschaft _height für seine Höhe und die Methode play() für das Abspielen. Eigenschaften und Methoden werden mit einem Punkt hinter das Objekt geschrieben; daher die Bezeichnung Punktsyntax:
movieclip_mc._height; movieclip_mc.play();
Instanznamen |
Der Name eines MovieClip-Objektes oder einer Schaltfläche auf der Bühne ist für ActionScript der Instanzname. Mit diesem Instanznamen greifen Sie auf das Objekt zu. |
Eine Methode erkennen Sie an den runden Klammern. Innerhalb dieser Klammern können je nach Methode ein oder mehrere Parameter folgen. Auch hier lässt sich die Verwandtschaft zu Funktionen erkennen.
Klassen und davon abgeleitete Objekte
Wie bereits erwähnt ist ein Objekt etwas Reales. ActionScript definiert Eigenschaften und Methoden für Objekte: So gehört beispielsweise zu jedem MovieClip die Eigenschaft _height, nur dass jeder Clip einen anderen Wert für die Eigenschaft besitzt. Die übergeordnete Struktur, die die Eigenschaften und Methoden festlegt, heißt Klasse.
In Flash 5 und Flash MX hießen die integrierten Klassen noch Objekte. Dies wurde mit Flash MX 2004 geändert, weil es nicht ganz korrekt ist. Außerdem lassen sich jetzt dank neuer Möglichkeiten bei der Objektorientierung eigene Klassen anlegen.
Abbildung 4.29 Die Klasse Auto gibt eine Struktur vor, die instanziierten Objekte haben Werte für die Eigenschaften und übernehmen die Methoden der Klasse.
In ActionScript finden Sie im Aktionen-Bedienfeld die Gruppe Integrierte Klassen bzw. in Flash 8 ActionScript 2.0-Klassen (1) . Dort beinhaltet der Unterpunkt Film (2) die Klasse MovieClip, sie definiert die Eigenschaften und Methoden für alle MovieClips.
Ein MovieClip-Objekt entsteht dadurch, dass Sie einen MovieClip auf der Bühne zu Ihrem Film hinzufügen. Sie müssen in diesem Fall nur einen Instanznamen vergeben, dann ist das Objekt vorhanden. Es gibt noch andere Klassen, beispielsweise die Klasse Date für einen Datumswert. Um ein Objekt dieser Klasse, also konkret ein Datum, zu erhalten, müssen Sie das Objekt instanziieren. Dafür steht Ihnen der Konstruktor new zur Verfügung:
var aktuell_date:Date = new Date();
Abbildung 4.30 Klassen im Aktionen-Bedienfeld
Übertragen wir die Syntax kurz ins Deutsche:
- Die Variable aktuell_date
- mit dem Datentyp Date
- erhält ein neues Objekt (new)
- der Klasse Date (Date()).
Der Datentyp entspricht dem Objekt, das Sie erzeugen möchten. Wollen Sie beispielsweise eine Farbe kreieren, heißt der Datentyp Color.
Testen Sie einfach, wie das Datum aussieht, und geben Sie es mit trace() aus:
trace(aktuell_date);
Wie aber unterscheiden Sie Klassen, bei denen die Objekte instanziiert werden müssen, von solchen Klassen, die für Objekte auf der Bühne gedacht sind? Die Antwort zeigt die neben stehende Abbildung: Besitzt eine Klasse einen Konstruktor, steht dieser auch im Aktionen-Bedienfeld bei der Klasse. Elemente, die dagegen auf der Bühne die Eingabe eines Instanznamens erlauben, sind mit diesem Namen als Objekt verfügbar.
Wenn Ihnen der Unterschied zwischen einer Klasse und einem Objekt klar geworden ist, sind Sie schon ein gutes Stück weiter. Sollten Sie noch unsicher sein, helfen Ihnen bestimmt in den nächsten Kapiteln die vielen Beispiele, die wir Ihnen zeigen und erklären. Haben Sie ein wenig Geduld, bald werden Sie wie selbstverständlich mit den Klassen sowie mit ihren Eigenschaften und Methoden hantieren.
Abbildung 4.31 Im Aktionen-Bedienfeld können Sie feststellen, ob eine Klasse einen Konstruktor benötigt (1) .
Eigene Klassen und Objekte
ActionScript ist mit seiner Version 2 sehr mächtig geworden. Es bietet Ihnen die Möglichkeit, auch eigene Klassen anzulegen; dafür dient das Schlüsselwort class. Allerdings funktioniert das nur in externen ActionScript-Dateien. Wir zeigen Ihnen diese Variante hier nicht, da sie den Rahmen unseres Themas sprengen würde und in der Praxis nur bei größeren Projekten zum Einsatz kommt.
In ActionScript 1 wurden Klassen (damals als Objekte bezeichnet) noch mit dem Schlüsselwort function ähnlich wie eine Funktion erstellt.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.