Rheinwerk Design < openbook > Rheinwerk Design - Know-how für Kreative.
Know-how für Kreative

 << zurück
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/)
Objektorientierung und Codedesign mit Flash MX 2004
Buch: ActionScript 1 und 2

ActionScript 1 und 2
672 S., mit CD, Referenzkarte, 44,90 Euro
Rheinwerk Design
ISBN 3-89842-221-6
gp Kapitel 11 Dokumenten-Objektmodell und Gültigkeitsbereich (Scope)
  gp 11.1 Steuern von Movieclips
    gp 11.1.1 Flash Player
    gp 11.1.2 Stufen
    gp 11.1.3 Zweck von Movieclips
  gp 11.2 Ziele
    gp 11.2.1 Pfade


Rheinwerk Design - Zum Seitenanfang

11.2 Ziele  downtop

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 11.2   Die Ziele in einer Flash-Anwendung

Eine Flash-Anwendung können Sie sich wie einen Baum vorstellen. Jede Astgabel und jedes Blatt wird dabei als Knoten bezeichnet, der wieder aus einer kompletten Flash-Anwendung (SWF-Datei) oder einem Movieclip besteht. Und wenn Sie mit mehreren Stufen arbeiten, dann erhalten Sie einen ganzen Wald aus Bäumen (siehe Abbildung 11.2)!

Um nun diese Knoten – also die einzelnen Movieclips in einer Flash-Anwendung – zu steuern, benötigen Sie einen Weg, Anweisungen zielgerichtet anzugeben. Und um Anweisungen zielgerichtet einzusetzen, müssen Sie zwei Dinge beachten:

gp  Wo werden diese Anweisungen aufgerufen?
gp  Auf wen sollen sich diese Anweisungen beziehen?

Rheinwerk Design - Zum Seitenanfang

11.2.1 Pfade  toptop

Anweisungen beziehen sich immer auf die Zeitleiste, in der sie aufgerufen werden. Mit Zeitleiste ist hier ein Movieclip oder eine Flash-Anwendung gemeint (egal ob als Stufe oder in einen Movieclip geladen). Wenn Sie also direkt in Ihrer Anwendung eine Anweisung wie z.B. _visible=false verwenden, dann wird die komplette Flash-Anwendung inklusive aller enthaltenen Elemente unsichtbar. Andere Stufen bleiben davon aber unberührt. Wenn Sie diese Aktion in einem Movieclip platzieren, dann werden nur dieser Movieclip und natürlich alle anderen in ihm liegenden Elemente ausgeblendet. Das heißt, dass der komplette Ast des Baumes ausgehend von dem Knoten, in dem die Aktion liegt, unsichtbar wird.

Um jetzt ein anderes »Ziel« unsichtbar zu machen, benötigen Sie den Pfad zu diesem Ziel. Falls Sie die Aktion direkt in der Anwendung, sozusagen an der Wurzel ausführen, dann ermitteln Sie den Pfad, indem Sie einfach die Kanten bis zum Ziel entlang wandern. Um z.  B. den Movieclip c1 zu steuern, benötigen Sie den Pfad a2.b2.c1. Die komplette Aktion lautet dann a2.b2.c1._visible=false. Falls Sie die Aktion aus dem Movieclip a2 heraus auf c1 anwenden möchten, lautet das dann b2.c1._visible=false.

Wenn Sie eine Wirkung von b1 auf a1 erzielen möchten, dann müssen Sie im Baum wieder nach unten wandern. Dies erreichen Sie mit _parent (in der folgenden Tabelle finden Sie einen Vergleich der Schreibweise aus Flash 4 mit der seit Flash 5). Die ganze Aktion lautet dann _parent.visible=false. Um von c2 nach a2 zu kommen, schreiben Sie _parent._parent._visible=false. Falls Sie von a2 nach a1 möchten, würden Sie _parent.a1 als Pfad angeben.

Relative/absolute Pfade

Es gibt aber nicht nur relative, also vom Ausgangspunkt abhängige, sondern auch absolute Pfade. Mit _root wandern Sie z.B. immer direkt in die Wurzel des Baums. Von b3 nach a1 gelangen Sie, indem Sie _parent._parent.a1 oder _root.a1 angeben. Egal von wo aus Sie _root.a1 als Pfad im Baum angeben, Sie erreichen immer den Movieclip mit dem Namen a1 – sofern sich die Aktionen im gleichen Baum, also in der gleichen Stufe befinden.

Bis jetzt bezogen sich alle Aktionen immer nur auf die gleiche Stufe (Level), also den gleichen Baum. Um eine andere Stufe anzusprechen, benötigen Sie ebenfalls absolute Pfade, die mit _level gefolgt von der Nummer des Levels beginnen. Die Aktion _level0._visible z.B. macht den ganzen Baum inklusive aller enthaltenen Movieclips unsichtbar, egal von wo diese Aktion aufgerufen wird. Das funktioniert selbst dann, wenn diese Aktion in einer anderen Flash-Anwendung liegt (solange beide Anwendungen vom gleichen Flash Player abgespielt werden und unter der gleichen Domain liegen). Um z.B. von a3 aus b1 unsichtbar zu machen, schreiben Sie _level0.a1.b1._visible=false.

Wenn Sie Aktionen erstellen, die sich auf den Movieclip beziehen, in dem sie liegen, dann können Sie den Pfad weglassen. Meistens ist es aber besser (zumindest besser zu lesen), wenn Sie anstatt _visible=false die Aktion this._visible=false verwenden. Mit this wird immer eine Referenz auf das Objekt verwaltet, bzgl. derer die Aktion ausgeführt wird.


Tabelle 11.1   Angabe von Zielen in Flash 4 und seit Flash 5

Flash 4 seit Flash 5
(keine Angabe) this (optional)
_level1 _level1
/ _root
.. _parent
pfad/movieclip pfad.movieclip
Tell Target With
pfad:_eigenschaft pfad._eigenschaft
pfad:variable pfad.variable
(nicht vorhanden) pfad.methode
Set Variable: "variable" = wert Variable=wert
GetProperty ( "movieclip", _eigenschaft ) movieclip._eigenschaft
Set Property ("movieclip", _eigenschaft) = wert movieclip._eigenschaft=wert

Wie Flash die Movieclips verwaltet

Alle Objekte inklusive der Movieclips werden intern in Listen verwaltet (ähnlich wie Arrays). Mit ActionScript können Sie so einfach alle Elemente der Anwendung ermitteln. Das folgende Skript z.B. gibt alle Elemente der Hauptzeitleiste (_root) im Ausgabefenster aus, wenn Sie die Anwendung in der Entwicklungsumgebung testen (Steuerung Film testen):

for (i in _root) {
   trace ("Typ:"+typeof _root[i]+" Wert:"+_root[i]);
}
 << zurück
  
  Zum Katalog
Zum Katalog: ActionScript 1 und 2
ActionScript 1 und 2
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript






 JavaScript


Zum Katalog: jQuery






 jQuery


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Katalog: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Design]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de