Die Klasse DisplayObject und ihre untergeordneten Objekte

ActionScript 3.0 ist eine konsequent objektorientierte Programmiersprache. D.h. alle Elemente mit denen man als ProgrammiererIn arbeitet sind Objekte mit bestimmetn Eigenschaften und Methoden. Manche Objekte können auch bestimmte Ereignisse auslösen bzw. auf Ereignisse regieren.
Die Klassendefinition enthält den "Bauplan" eines Objekts, oft auch blueprint (Blaupause) genannt. Eine konkrete "Realisierung" nach diesem Bauplan wird als Instanz bezeichnet. Jede Instanz hat einen eindeutigen Identifier. Man kann grundsätzlich beliebig viele Instanzen von einer Klasse erzeugen.

Ein wesentliches Merkmal einer objektorientierten Sprache ist das Konzept der Vererbung. D.h. man kann ausgehend von einer Klassendefinition eines Ojekts (in der eben die Eigenschaften und Methoden definiert werden) Unterobjekte definieren, die die Eigenschaften und Methoden des übergeordneten Objekts übernehmen, zum Teil auch überschreiben und vor allem aber erweitern. Unterobjekte sind immer eine Verfeinerung, eine Spezialisierung von allgemeineren übergeordneten Objekten.

Das allgemeinste, oberste Objekt in ActionScript 3.0 ist das Objekt Object. Die Object-Klasse ist das Stammelement der ActionScript-Klassenhierarchie. Ein wichtiger Teil in dieser Klassenhierachie sind die Objekte, die für den visuellen Output im Flash Player verantwortlich sind. Ohne diese Objekte würden wir nichts anschauen können. Die DisplayObject-Klasse ist die Basisklasse für alle visuellen Objekte, die in die Anzeigeliste eingefügt werden können. Die Anzeigeliste verwaltet alle Objekte, die im Flash Player angezeigt werden.

Klassenhierachie mit der Klasse DisplayObject als übergeordnete Basisklasse:
 

Die Klassen in den abgerundeten Rechtecken werden nicht dirket verwendet. Sie sind abstrakte Klasse, in denen die wesentlichen gemeinsamen Eigenschaften und Methoden definiert sind, die in den davon abgeleiteten konkreten Unterklassen verwendet werden.

Die Klasse DisplayObject:

Die Klasse DisplayObject enthält die Eigenschaften und Methoden, die für alle Anzeigeobjekte gelten.

Die wichtigsten Eigenschaften, die man sehr oft benötigt, sind gelb unterlegt und werden hier kurz beschrieben:

x und y
geben die x- und y-Koordinate der DisplayObject-Instanz relativ zu den lokalen Koordinaten des übergeordneten DisplayObjectContainer-Objekts an. Durch Veränderung der x- und y-Werte in der Zeit können Displayobjekte bewegt werden.
Durch die Methode localToGlobal() können die x-und y-Koordinaten
von den (lokalen) Koordinaten des Anzeigeobjekts in die (globalen) Bühnenkoordinaten konvertiert werden. Das ist nur relevant, wenn das Anzeigeobjekt in einem DisplayObjectContainer "steckt", der nicht die Bühne ist. Das Thema "Container" wird weiter unten behandelt.

rotation, scaleX und scaleY ermöglichen das Transformieren von Anzeigeobjekten.
Über die Eigenschaft rotation lässt sich ein Objekt rotieren. Der Wert gibt die Drehung der DisplayObject-Instanz ausgehend von der ursprünglichen Ausrichtung in Grad an. Werte zwischen 0 und 180 geben eine Rechtsdrehung, Werte zwischen 0 und -180 eine Linksdrehung an.
scaleX und scaleY geben die horizontale bzw. vertikale Skalierung des Objekts ausgehend vom Registrierungspunkt an. Der Standardregistrierungspunkt liegt bei (0,0). 1,0 entspricht 100 % Skalierung.

width und height
geben die Breite und Höhe des Anzeigeobjekts in Pixel an. Die Breite und Höhe werden auf Basis des Begrenzungsrechtecks des Anzeigeobjekts berechnet. Wenn man die Eigenschaft width und height festsetzt, werden die Eigenschaften scaleX und scaleY entsprechend angepasst und umgekehrt.

visible
ermöglicht es, ein Anzeigeobjekt auf sichtbar oder unsichtbar zu setzen.

alpha
gibt den Transparenzwert des Anzeigeobjekts an. Die zulässigen Werte liegen zwischen 0 (völlig transparent) und 1 (völlig undurchsichtig).

stage
liefert die Bühne des Anzeigeobjekts. Genauer: den Verweis auf die einzige Instanz des Stage-Objekts in der Flash-Anwendung, denn jede Flash-Anwendung besitzt nur ein Stage-Objekt.Wenn jedoch ein Anzeigeobjekt nicht in die Anzeigeliste aufgenommen wird, ist seine stage-Eigenschaft auf null gesetzt.

mouseX und mouseY
liefern die x- und y-Koordinate der Mausposition in Pixel relativ zum Registrierungspunkt des Anzeigeobjekts. Diese Eigenschaften können nur gelesen, aber nicht verändert werden. Somit kann man über stage.mouseX und stage.mouseY in jedem Anzeigeobjekt die Mauskoordinaten relativ zum Bühnenursprung in der linken oberen Ecke abrufen, denn stage liefert die Bühneninstanz und relativ dazu werden die Mauskkoordinaten errechnet.
 

Klassen, die unmittelbar von der Klasse DislayObject abgeleitet sind:

Unmittelbar von der Klasse DisplayObject abgeleitet sind die konkreten Klassen Shape, Bitmap und Video. Diese drei Klassen beschreiben Anzeigeobjekte, die KEINE Interaktivität mit den BenutzerInnen ermöglichen und ausschließlich für die nicht interaktive Darstellung von Vektorgrafik, Pixelgrafik und Videoinhalten benutzt werden.

Mithilfe der Klasse Shape können Vektorgrafikformen erstellt werden. Die Klasse enthält eine Eigenschaft graphics, mit der man auf Methoden der Klasse Graphics zugreifen kann, die für das Erstellen von Vektorformen benötigt werden.

Die Klasse Bitmap repräsentiert Anzeigeobjekte, die Pixelgrafik darstellen. Dabei kann es sich um Bilder handeln, die mit der Loader-Klasse geladen oder direkt mit ActionScript erstellt werden.

Mithilfe der Klasse Video kann man Flash Video-Dateien (FLV-Dateien) über HTTP oder das lokale Dateisystem und Live-Streaming-Videos wiedergeben.

Zusätzlich leitet sich die abstrakte Klasse InteractiveObject unmittelbar von der Klasse DisplayObject ab. Die InteractiveObject-Klasse ist die abstrakte Basisklasse für alle Anzeigeobjekte, mit denen BenutzerInnen per Maus und Tastatur interagieren können.
Diese Klasse wird im nächsten Kapitel genauer erklärt.