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

Inhaltsverzeichnis
Vorwort
1 Flash für ActionScript
2 ActionScript in Flash
3 Flash Pro für ActionScript
4 Grundlagen der Programmierung
5 Einfache Filmsteuerung
6 Bildschirme und Präsentationen
7 Drucken und das Kontextmenü
8 Textfelder
9 Tasten
10 Datum und Zeit
11 Rechnen
12 Farbe wechseln und Drag
13 Zeichnen und Zufall
14 Von Mäusen und Duplikaten
15 Kollisionstest
16 Sound
17 Video
18 Externe Filme
19 Vorladen und Player erkennen
20 Formulare und UI-Komponenten
21 Komponenten anpassen
22 Formulare versenden
23 Warenkorb
24 Ausblick auf ActionScript 3
Stichwort
Ihre Meinung?

Spacer
 <<   zurück
Einstieg in ActionScript von Christian Wenz, Tobias Hauser, Armin Kappler
Aktuell zu Flash 8
Buch: Einstieg in ActionScript

Einstieg in ActionScript
brosch., mit CD und QuickFinder und Referenz
416 S., 24,90 Euro
Rheinwerk Design
ISBN 978-3-89842-774-6
Pfeil 5 Einfache Filmsteuerung
  Pfeil 5.1 Einfache Navigation
  Pfeil 5.2 Szenen
  Pfeil 5.3 Auswahl treffen
  Pfeil 5.4 MovieClips
  Pfeil 5.5 Ereignisprozeduren


Rheinwerk Computing - Zum Seitenanfang

5.5 Ereignisprozeduren  topZur vorigen Überschrift

Ereignisprozeduren helfen, die Filmsteuerung ein wenig zu vereinfachen. Wie Sie wissen, gibt es in Flash drei Orte, an denen ein Ereignis auftreten kann: bei Schlüsselbildern, Schaltflächen-Symbolen und MovieClips.

Für Schlüsselbilder müssen Sie das Ereignis nicht extra schreiben, da es nur das eine Ereignis gibt: »der Abspielkopf betritt das Schlüsselbild«. Bei Schaltflächen und MovieClips ist dagegen mehr Arbeit notwendig: on und onClipEvent kommen zum Einsatz, und Sie benötigen ein Ereignis. Der größte Aufwand ist dabei, in jede Schaltfläche oder jeden MovieClip zu wechseln und dort Code einzugeben. Deswegen hat sich Macromedia eine zentrale Möglichkeit ausgedacht, auf Ereignisse bei einzelnen Elementen zu reagieren: die Ereignisprozeduren. Und so funktioniert es:


Fehlerquelle

Ob Sie eine an anderer Stelle definierte Funktion aufrufen oder direkt in der Ereignisprozedur eine Funktion ohne Funktionsname definieren, macht funktional keinen Unterschied. In der ersten Variante müssen Sie beachten, dass die runden Klammern nach dem Funktionsnamen entfallen. Die zweite Variante führt aber leicht zu Tippfehlern, da hier kein Funktionsname steht und der Funktionsaufruf als Anweisung mit Strichpunkt beendet wird.


1. Sie greifen auf die Schaltfläche oder den MovieClip zu, die ein Ereignis erhalten sollen. Wenn die Instanz direkt unter dem Hauptfilm liegt, genügt der Instanzname:
       
Instanzname.
2. Nun folgt das Ereignis. Es setzt sich aus on und dem Ereignisnamen zusammen, beispielsweise onRelease (Ereignisprozedur)onRelease:
       
Instanzname.onRelease
3. Diesem Ereignis weisen Sie eine Funktion zu, die ausgeführt wird. Beachten Sie, dass die runden Klammern weggelassen werden:
       
Instanzname.onRelease = Funktionsname;
4. Oftmals wird keine Funktion aufgerufen, sondern direkt eine Funktion ohne Funktionsnamen1 definiert:
       
Instanzname.onRelease = function () {
   Anweisungen;
};

Beachten Sie, dass sich bei Ereignisprozeduren nicht der Ort ändert, an dem das Ereignis auftritt, nur Ihren Code schreiben Sie an eine andere Stelle.

Ereignisprozeduren gibt es erst ab Flash MX, also nicht in Flash 5. Hier ist ActionScript 1 eben nicht gleich ActionScript 1.

Ein Beispiel zeigt, wie Ihnen Ereignisprozeduren helfen. Öffnen Sie die Datei ereignisprozeduren_AS2.fla aus dem Ordner Flash8 oder FlashMX2004 bzw. auf der CD-ROM. Für Flash MX befindet sich die Datei im Ordner FlashMX und trägt den Namen ereignisprozeduren_AS1.fla. Sie sehen drei MovieClips mit Leuchtdioden. Über drei Schaltflächen sollen die Dioden der Reihe nach eingefärbt werden – mit der aus dem letzten Abschnitt »MovieClips« gezeigten Technik. Die Schaltflächen sind in einen eigenen MovieClip eingefügt und färben von oben nach unten gelb, rot und grün.

Abbildung 5.12 Die Ausgangssituation besteht aus drei Schaltflächen in einem MovieClip und drei Dioden.

Stellen Sie sich vor, welchen Aufwand es bedeuten würde, den Code zum Einfärben in die Buttons einzutragen. Da nacheinander drei verschiedene Dioden eingefärbt werden sollen, müssten Sie mit drei Schlüsselbildern arbeiten und drei verschiedene Codes für jeden der Buttons anlegen. Insgesamt bedeutet das, neunmal eine Schaltfläche zu aktivieren und den Code in folgender Form abzulegen:

on (release) {
   diodeEins_mc.gotoAndStop(2);
}

Abbildung 5.13 Der Film in der Übersicht

Mit Ereignisprozeduren geht das einfacher: Sie haben drei Schlüsselbilder in der ActionScript-Ebene. Dort steht der Code, der für Schlüsselbild 1 so aussieht:

stop(); //Film anhalten
buttonGruppe_mc.gelb_btn.onRelease = function() {
   diodeEins_mc.gotoAndStop(2);
   gotoAndStop(20);
};
...

Zuerst wird der Hauptfilm angehalten. Dann definieren Sie die Ereignisprozedur für die oberste Schaltfläche: Wenn der Nutzer die Maustaste loslässt (onRelease), springt der MovieClip diodeEins_mc auf Bild 2. Dieses Bild enthält die Diode mit gelbem Verlauf, sie ist also gelb eingefärbt. Anschließend geht der Hauptfilm weiter zu Bild 20, wo die zweite Diode gefärbt wird.

Analog zu diesem Code sieht auch der Code für die anderen zwei Schaltflächen aus. Hier wird nur der Button-Instanzname von gelb_btn in rot_btn beziehungsweise gruen_btn geändert und der MovieClip für die erste Diode springt auf Bild 3 beziehungsweise 4.


In der Praxis

Ob Sie mit Ereignisprozeduren arbeiten oder nicht, ist Geschmacksache. Gerade bei vielen Schaltflächen und umfangreichen Navigationen verringern sie den Arbeitsaufwand, da der Code an zentraler Stelle gesammelt ist. Deswegen verwenden wir in diesem Buch häufig Ereignisprozeduren. Allerdings müssen Sie ein wenig Vorsicht walten lassen, da Sie bei Ereignisprozeduren schnell übersehen können, wo ein Ereignis auftritt.


Der Code in Schlüsselbild 20 und 40 funktioniert wiederum analog. Allerdings wird jetzt die Diode 2 beziehungsweise 3 umgefärbt. Der MovieClip, in dem navigiert wird, heißt im einen Fall diodeZwei_mc, im anderen diodeDrei_mc. Folgende Zeilen zeigen Ihnen den Code für Schlüsselbild 20 und den gelben Button:

stop(); //Film anhalten
buttonGruppe_mc.gelb_btn.onRelease = function() {
   diodeZwei_mc.gotoAndStop(2);
   gotoAndStop(40);
};
...

Die neu definierten Ereignisprozeduren überschreiben die alten, die im Schlüsselbild 1 definiert wurden. Sie sehen daran die Flexibilität von Ereignisprozeduren: Sie können jederzeit eine Prozedur mit einer anderen überschreiben. Damit lässt sich an zentraler Stelle direkt in der Hauptzeitleiste das Verhalten von Schaltflächen und MovieClips steuern.

 



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.

 <<   zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: ActionScript 3 – Das Praxisbuch
ActionScript 3
Das Praxisbuch

bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: JavaScript






 JavaScript


Zum Rheinwerk-Shop: jQuery






 jQuery


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2006
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.


Nutzungsbestimmungen | Datenschutz | Impressum

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

Cookie-Einstellungen ändern