Kapitel 15 Movieclips
Die meistgenutzten Bausteine in Flash
Die hierarchisch aufgebauten Movieclips besitzen zahlreiche vordefinierte Eigenschaften und Methoden, die sie sehr leistungsfähig machen. Und sollte einmal eine Eigenschaft fehlen oder eine Fähigkeit nicht ausreichen, dann steht einer individuellen Erweiterung nichts im Wege …
03_Objektorientierung\movieclip
Jede Flash-Anwendung besteht aus mindestens einem Movieclip, nämlich der Anwendung selber. Diese Anwendung darf – wie alle anderen Movieclips – eine Reihe an Elementen beinhalten. Dazu zählen auch wieder Movieclips. Ähnlich wie bei den Matrjoschka-Figuren, die ineinander gesteckt weitere Matrjoschka-Figuren enthalten usw.
Neben den Movieclips bietet Flash seit Flash MX weitere Elemente, die den Movieclips ähneln und eine Reihe an Eigenschaften und Fähigkeiten von diesen übernommen haben:
|
Buttons (diese verhalten sich im Gegensatz zu den Schaltflächen in Flash 5 nun als eigenständige programmierbare Objekte) |
|
Textfield (Textfelder) |
Anwendung versus Film
Ob man bei Flash von Anwendungen oder Filmen spricht, ist Ansichtssache. Aus historischen Gründen ist der Begriff Film momentan noch sehr etabliert, doch das Bemühen von Flash, auch im Bereich der Anwendungsentwicklung Fuß zu fassen, führt dazu, dass der Begriff Anwendung so wie in diesem Buch immer geläufiger wird.
Gemeinsam ist all diesen Objektklassen, dass sie sich im Gegensatz zu anderen Objekttypen durch eine visuelle Repräsentation auszeichnen. D.h. die meisten Movieclips sind am Bildschirm sichtbar und damit weniger abstrakt als zum Beispiel Arrays, die ausschließlich im Arbeitspeicher existieren. In manchen Situationen sind »leere« und damit nicht sichtbare Movieclips sehr beliebt, um Programmcode modular zu halten. Gerade für ältere Flash-Versionen, die noch nicht über Komponenten verfügen, wird dieses Vorgehen häufig benötigt.
Nomenklatur
In Flash 3 führte Macromedia die Movieclips erstmalig ein. Die deutschen Übersetzer arbeiteten bei der Lokalisierung dieser Version dermaßen gründlich, dass aus den Movieclips »Filmsequenzen« wurden. Da Movieclips seit Flash 5 als Objekt im Sprachumfang von ActionScript auftauchen, erscheint eine Übersetzung dieses Fachbegriffs nicht mehr sinnvoll. Deshalb verzichtet Macromedia sowohl in ActionScript als auch in der Programmoberfläche seit Flash MX auf eine Übersetzung.
Erschwerend hinzu kommt das Problem mit dem groß- oder kleingeschriebenen C in Movieclip. Denn anfänglich war das C überall groß. Mittlerweile kommt der Movieclip aber als eigenständiger Begriff mit kleinem c daher. Nur in der Programmierung ist das große C weiterhin notwendig, weil es dort nun einmal so eingeführt wurde.
Übrigens versuchen auch andere Unternehmen, die Sprache zu bereichern: Corel bezeichnet Movieclip-ähnliche Elemente in Corel RAVE als Sprites, Adobe versuchte es bei Livemotion mit Videoclips.
15.1 Eigenschaften
Die Liste der von Flash vordefinierten Eigenschaften für Movieclips ist beinahe in jeder Flash-Version gewachsen und hat mittlerweile eine beachtliche Größe erlangt. Die meisten Movieclip-Eigenschaften finden Sie im ActionScript-Editor in der Kategorie Eingebaute Klassen • Film • Movieclip • Eigenschaften.
Dabei gibt es einige ältere Eigenschaften, die mit einem Unterstich eingeleitet werden, und neuere, die ohne diesen auskommen. Der Grund für den Unterstrich ist historischer Natur und hat sonst keine weitere Bedeutung.
Weitere Eigenschaften
Movieclips besitzen neben den hier aufgezählten noch weitere Eigenschaften, die für alle Objekte in Flash gelten. Dazu zählen für die Objektorientierung nützliche Eigenschaften wie __proto__.
Tabelle 15.1
Eigenschaften
Eigenschaft
|
Beschreibung
|
Lesen/
Setzen
|
Wert
|
Flash Player Version
|
_accProps
|
Diese Eigenschaft bestimmt, welche Informationen für die Barrierefreiheit gesetzt werden sollen.
|
ja/ja
|
Objekt mit Eigenschaften. Standard undefined
|
6.65
|
_alpha
|
Diese Eigenschaft bestimmt den Alphawert (Transparenz) eines Movieclips in Prozent.
|
ja/ja
|
Ganzzahl von 0 (durchsichtig) bis 100 (undurchsichtig). Standard 100
|
4
|
_currentframe
|
Diese Eigenschaft bestimmt das aktuelle Bild in einem Movieclip.
|
ja/nein
|
Ganzzahl von 1 (erstes Bild) bis 16000 (maximale Anzahl Bilder)
|
4
|
_droptarget
|
Diese Eigenschaft bestimmt, auf welchen Movieclip ein anderer Movieclip gezogen wurde.
|
ja/nein
|
Name eines Movieclips als Zeichenfolge (die Position des Mauszeigers ist ausschlaggebend für den Wert)
|
4
|
_flash
|
Diese Eigenschaft beinhaltet den Pfad zur Stufe 0 (_level0).
|
ja/nein
|
MovieClip. Standard _level0
|
5
|
_focusrect
|
Diese Eigenschaft bestimmt, ob um ausgewählte Movieclips mit Schaltflächenverhalten ein gelbes Rechteck erscheint. Dadurch wird die Bedienung mit der Tastatur erleichtert. Diese Eigenschaft hat Vorrang vor der gleich lautenden globalen Eigenschaft _focusrect.
|
ja/ja
|
Boolean (true oder false). Standard true (eingeschaltet)
|
5
|
_framesloaded
|
Diese Eigenschaft gibt an, wie viele Bilder des Movieclips bereits in den Speicher geladen sind.
|
ja/nein
|
Ganzzahl von 1 (erstes Bild) bis 16000 (maximale Anzahl Bilder)
|
4
|
_height
|
Diese Eigenschaft bestimmt die Höhe eines Movieclips in Pixel.
|
ja/ja (setzen erst seit Flash 5)
|
Ganzzahl
|
4
|
_leveln
|
Diese Eigenschaft beinhaltet den Pfad zur angegebenen Stufe n, wobei n für die Nummer (bzw. Tiefe) der Stufe steht.
|
ja/nein
|
MovieClip
|
4
|
_lockroot
|
Diese Eigenschaft bestimmt, ob sich die Eigenschaft _root in einer geladenen SWF-Datei auf diese selbst oder auf den Hauptfilm bezieht.
|
ja/ja
|
Boolean (true oder false). Standard undefined (ausgeschaltet)
|
7
|
_name
|
Diese Eigenschaft bestimmt die Bezeichnung eines Movieclips.
|
ja/ja
|
Zeichenfolge
|
4
|
_parent
|
Diese Eigenschaft beinhaltet den Pfad zur übergeordneten Movieclip-Instanz, in der sich die Movieclip-Instanz befindet.
|
ja/nein
|
MovieClip
|
4
|
_root
|
Diese Eigenschaft beinhaltet den Pfad zur Stufe (Level), in der sich die Movieclip-Instanz befindet.
|
ja/nein
|
MovieClip
|
4
|
_rotation
|
Diese Eigenschaft bestimmt die Drehung eines Movieclips in Grad.
|
ja/ja
|
Ganzzahl (Flash rechnet die Drehung automatisch auf einen Winkel zwischen -180 und 180 Grad um)
|
4
|
_target
|
Diese Eigenschaft bestimmt den kompletten Pfad eines Movieclips.
|
ja/nein
|
Zeichenfolge
|
4
|
_totalframes
|
Diese Eigenschaft gibt an, aus wie vielen Bildern die Flash-Anwendung oder ein Movieclip besteht.
|
ja/nein
|
Ganzzahl von 1 (erstes Bild) bis 16.000 (maximale Anzahl der Bilder)
|
4
|
_url
|
Diese Eigenschaft gibt den URL-Pfad der Flash Player-Datei an, zu der der Movieclip gehört.
|
ja/nein
|
Zeichenfolge
|
4
|
_visible
|
Diese Eigenschaft bestimmt, ob ein Movieclip sichtbar ist oder nicht.
|
ja/ja
|
Boolean (true oder false). Standard true (eingeschaltet)
|
4
|
_width
|
Diese Eigenschaft bestimmt die Breite eines Movieclips in Pixel.
|
ja/ja (setzen erst seit Flash 5)
|
Ganzzahl
|
4
|
_x
|
Diese Eigenschaft bestimmt die horizontale Position eines Movieclips in Pixeln.
|
ja/ja
|
Ganzzahl
|
4
|
_xmouse
|
Diese Eigenschaft ermittelt die horizontale Position der Maus in Pixel.
|
ja/nein
|
Ganzzahl
|
5
|
_xscale
|
Diese Eigenschaft bestimmt die Breite eines Movieclips in Prozent.
|
ja/ja
|
Ganzzahl. Standard 100
|
4
|
_y
|
Diese Eigenschaft bestimmt die vertikale Position eines Movieclips in Pixel.
|
ja/ja
|
Ganzzahl
|
4
|
_ymouse
|
Diese Eigenschaft ermittelt die vertikale Position der Maus in Pixel.
|
ja/nein
|
Ganzzahl
|
5
|
_yscale
|
Diese Eigenschaft bestimmt die Höhe eines Movieclips in Prozent.
|
ja/ja
|
Ganzzahl. Standard 100
|
4
|
enabled
|
Diese Eigenschaft bestimmt, ob ein Movieclip als Button agiert.
|
ja/ja
|
Boolean (true oder false). Standard true (eingeschaltet)
|
6
|
focusEnabled
|
Diese Eigenschaft bestimmt, ob ein Movieclip den Eingabefokus erhalten kann, auch wenn er sich nicht als Button verhält.
|
ja/ja
|
Boolean (true oder false). Standard undefined (ausgeschaltet)
|
6
|
hitArea
|
Diese Eigenschaft legt einen Movieclip als aktiven Bereich fest.
|
ja/ja
|
MovieClip. Standard undefined (der Movieclip selber)
|
6
|
menu
|
Diese Eigenschaft bestimmt, welches Menü als Kontextmenü angezeigt werden soll.
|
ja/ja
|
Referenz auf ein Kontextmenü (ContextMenu). Standard undefined
|
7
|
tabChildren
|
Diese Eigenschaft legt fest, ob die untergeordneten Movieclip-Instanzen in einem Movieclip bei der Tabulatorreihenfolge berücksichtigt werden.
|
ja/ja
|
Boolean (true oder false). Standard undefined (eingeschaltet)
|
6
|
tabEnabled
|
Diese Eigenschaft bestimmt, ob ein Movieclip in die Tabulatorreihenfolge aufgenommen wird.
|
ja/ja
|
Boolean (true oder false). Standard undefined (eingeschaltet)
|
6
|
tabIndex
|
Diese Eigenschaft bestimmt die Position eines Movieclips in der Tabulatorreihenfolge.
|
ja/ja
|
Positive Ganzzahl. Standard undefined (automatische Reihenfolge)
|
6
|
trackAsMenu
|
Diese Eigenschaft bestimmt, ob ein Movieclip mit Button-Verhalten als Menüelement oder als Schaltflächenelement behandelt wird.
|
ja/ja
|
Boolean (true oder false). Standard undefined (ausgeschaltet)
|
6
|
useHandCursor
|
Diese Eigenschaft bestimmt, ob ein Movieclip mit Button-Verhalten im aktiven Bereich den Handcursor zeigt.
|
ja/ja
|
Boolean (true oder false). Standard true (eingeschaltet)
|
6
|
Globale Eigenschaften
Einige der älteren Ereignisse beschränken ihre Wirkung zudem nicht auf die Movieclip-Instanz bzgl. derer sie angewendet werden, sondern beeinflussen die gesamte Anwendung. Diese globalen Eigenschaften, auch Filmeigenschaften genannt, werden ähnlich wie Movieclip-Eigenschaften angegeben und verwaltet. Der einzige Unterschied ist, dass eine Änderung dieser Eigenschaften automatisch für alle Movieclips und somit für die gesamte Anwendung (bzw. für den gesamten Film) gilt, weshalb die Angabe eines Pfades zu einer Instanz auch unnötig ist (siehe »Toplevel-Funktionen«, Seite 243).
Tabelle 15.2
Globale Eigenschaften
Eigenschaft
|
Beschreibung
|
Lesen/Setzen
|
Wert
|
Flash Player Version
|
_accProps
|
Diese Eigenschaft bestimmt, welche Informationen für die Barrierefreiheit gesetzt werden sollen.
|
ja/ja
|
Objekt mit Eigenschaften. Standard undefined
|
6.65
|
_focusrect
|
Diese globale Eigenschaft bestimmt, ob um ausgewählte Schaltflächen ein gelbes Rechteck erscheint. Dadurch wird die Bedienung mit der Tastatur erleichtert.
|
ja/ja
|
Boolean (true oder false), Standard true (eingeschaltet)
|
4
|
_global
|
Diese Eigenschaft enthält eine Referenz auf das globale Objekt mit den Toplevel-Funktionen und ActionScript-Klassen.
|
ja/nein
|
Objekt
|
6
|
_highquality
|
Diese globale Eigenschaft bestimmt die Darstellungsqualität der gesamten Anwendung. Anstelle dieser Eigenschaft sollte ab jetzt _quality verwendet werden.
|
ja/ja
|
0 für niedrige Qualität, 1 für hohe Qualität und 2 für beste Qualität
|
4
|
_quality
|
Diese globale Eigenschaft bestimmt die Darstellungsqualität der gesamten Anwendung.
|
ja/ja
|
"LOW", "MEDIUM", "HIGH" oder "BEST" als Zeichenfolge
|
5
|
_soundbuftime
|
Diese globale Eigenschaft bestimmt den Puffer für den gestreamten Sound der gesamten Anwendung in Sekunden.
|
ja/ja
|
Ganzzahl, Standard 5
|
4
|
|