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 12 Ereignisse
  gp 12.1 Vor- und Nachteile
    gp 12.1.1 Vor- und Nachteile von Ereignisprozeduren
    gp 12.1.2 Vor- und Nachteile von Ereignismethoden
    gp 12.1.3 Vor- und Nachteile von Ereignismethoden in Flash 5
    gp 12.1.4 Vor- und Nachteile von Listener
  gp 12.2 Reihenfolge der Ereignisse
    gp 12.2.1 Bildbasierte Ereignisreihenfolge
    gp 12.2.2 Bildunabhängige Ereignisreihenfolge
    gp 12.2.3 updateAfterEvent
    gp 12.2.4 setInterval
    gp 12.2.5 initClip
    gp 12.2.6 _changed
  gp 12.3 Ereignisprozeduren
    gp 12.3.1 Fehlerquelle
    gp 12.3.2 on
    gp 12.3.3 onClipEvent
  gp 12.4 Ereignismethoden
    gp 12.4.1 allowDomain
    gp 12.4.2 allowInsecureDomain
    gp 12.4.3 onActivity
    gp 12.4.4 onChanged
    gp 12.4.5 onClose
    gp 12.4.6 onConnect
    gp 12.4.7 onData
    gp 12.4.8 onDragOut
    gp 12.4.9 onDragOver
    gp 12.4.10 onEnterFrame
    gp 12.4.11 onID3
    gp 12.4.12 onKeyDown
    gp 12.4.13 onKeyUp
    gp 12.4.14 onKillFocus
    gp 12.4.15 onLoad
    gp 12.4.16 onMouseDown
    gp 12.4.17 onMouseMove
    gp 12.4.18 onMouseUp
    gp 12.4.19 onPress
    gp 12.4.20 onRelease
    gp 12.4.21 onReleaseOutside
    gp 12.4.22 onRollOut
    gp 12.4.23 onRollOver
    gp 12.4.24 onScroller
    gp 12.4.25 onSelect
    gp 12.4.26 onSetFocus
    gp 12.4.27 onSoundComplete
    gp 12.4.28 onStatus
    gp 12.4.29 onSync
    gp 12.4.30 onUnload
    gp 12.4.31 onUpdate
    gp 12.4.32 onXML
  gp 12.5 Listener
    gp 12.5.1 Listener simulieren
    gp 12.5.2 AsBroadcaster
    gp 12.5.3 onChanged
    gp 12.5.4 onKeyDown
    gp 12.5.5 onKeyUp
    gp 12.5.6 onMouseDown
    gp 12.5.7 onMouseMove
    gp 12.5.8 onMouseUp
    gp 12.5.9 onMouseWheel
    gp 12.5.10 onResize (Stage)
    gp 12.5.11 onScroller(target)
    gp 12.5.12 onSetFocus (Selection)


Rheinwerk Design - Zum Seitenanfang

12.3 Ereignisprozeduren  downtop

ActionScript unterscheidet zwei Arten der Ereignisprozeduren (engl. Eventhandler):

gp  Zum einen sind das die durch das Schlüsselwort on eingeleiteten Ereignisprozeduren für Schaltflächen (seit Flash MX funktionieren die Schaltflächenereignisse ebenfalls mit Movieclips) und
gp  zum anderen die mit einem onClipEvent beginnenden Prozeduren für Movieclips.

In der Tabelle »Ereignisprozeduren und unterstützte Flash-Version« finden Sie eine Liste mit allen Ereignisprozeduren, in der auch die vorausgesetzten Flash Player-Versionen angegeben sind.


Rheinwerk Design - Zum Seitenanfang

12.3.1 Fehlerquelle  downtop

Eine beliebte Fehlerquelle ist der Gültigkeitsbereich (engl. scope) der Anweisungen in Ereignisprozeduren. Die Anweisungen in einer Ereignisprozedur beziehen sich bei Schaltflächen auf die Zeitleiste, in der sich die Schaltfläche befindet. Abweichend davon führt Flash die Anweisungen in Ereignisprozeduren von Movieclips bezüglich der Zeitleiste des Movieclips aus (siehe »Gültigkeitsbereich«, Seite 276).

Übrigens dürfen Sie im Gegensatz zu den onClipEvent-Anweisungen die Ereignisse bei on auch kombinieren und durch Kommata getrennt hintereinander als Parameter angeben:

on (press) {
   // Drag…
   this.startDrag();
}
on (release, releaseOutside) {
   // …and Drop
   this.stopDrag();
}

Tabelle 12.2   Ereignisprozeduren und unterstützte Flash-Version

Ereignisprozedur Schaltfläche Movieclip
on (dragOut) seit Flash Player 3 seit Flash Player 6
on (dragOver) seit Flash Player 3 seit Flash Player 6
on (keyPress "taste") seit Flash Player 4 seit Flash Player 6
on (press) seit Flash Player 3 seit Flash Player 6
on (release) seit Flash Player 2 seit Flash Player 6
on (releaseOutside) seit Flash Player 3 seit Flash Player 6
on (rollOut) seit Flash Player 3 seit Flash Player 6
on (rollOver) seit Flash Player 3 seit Flash Player 6
onClipEvent (data)   seit Flash Player 5
onClipEvent (enterFrame)   seit Flash Player 5
onClipEvent (keyDown)   seit Flash Player 5
onClipEvent (keyUp)   seit Flash Player 5
onClipEvent (load)   seit Flash Player 5
onClipEvent (mouseDown)   seit Flash Player 5
onClipEvent (mouseMove)   seit Flash Player 5
onClipEvent (mouseUp)   seit Flash Player 5
onClipEvent (unload)   seit Flash Player 5


Rheinwerk Design - Zum Seitenanfang

12.3.2 on  downtop

Die Anweisung on leitet einen Block in geschweiften Klammern ein, dessen Ausführung von einem als Parameter angegebenen Ereignis abhängt.

gp  Bemerkung:
    Diese Anweisung steht je nach Ereingis seit dem Flash Player 2 zur Verfügung (siehe obenstehende Tabelle »Ereignisprozeduren«). Diese Anweisung ist auf Schaltflächen- und seit Flash MX ebenfalls auf Movieclip-Instanzen erlaubt. In Schlüsselbildern funktioniert diese Anweisung hingegen nicht.
       
gp  Syntax:
on (ereignis1, ereignis2, ... ereignisN) {
   anweisungen;
}
gp  Parameter:
    anweisungen: Innerhalb der geschweiften Klammern geben Sie die Anweisungen an, die beim Eintritt eines der angegebenen Ereignisse ausgeführt werden sollen.
       
    ereignis1 bis ereignisN: Als Ereignis werden der oder die Auslöser bezeichnet, die zur Ausführung der Anweisungen führen: Wenn eines der angegebenen Ereignisse stattfindet, werden die in geschweiften Klammern stehenden Anweisungen abgearbeitet. Sollten Sie mehr als ein Ereignis angeben wollen, so müssen diese durch Kommata getrennt werden. Die folgenden Werte sind als Ereignis erlaubt:
       
dragOut: Drücken der Maustaste, während sich der Mauszeiger über der Schaltfläche befindet (aktiver Bereich bzw. hitArea) und anschließendes Hinausziehen des Mauszeigers. dragOver: Während sich der Mauszeiger über dem aktiven Bereich der Schaltfläche (hitArea) befindet, wird die Maustaste gedrückt gehalten, der Mauszeiger aus dem Schaltflächenbereich hinaus- und dann wieder über die Schaltfläche gezogen (siehe Hinweis »Als Menüelement behandeln« auf Seite 298). keyPress ("taste"): Drücken der durch taste angegebenen Taste. Hierbei unterscheidet Flash zwischen Groß- und Kleinschreibung. Leider funktionieren aber Sonderzeichen, insbesondere deutsche Umlaute, zum großen Teil nicht korrekt. In der Tabelle »Erlaubte Funktionstasten für keyPress-Ereignis« sind außerdem sämtliche zusätzlich erlaubten Funktionstasten aufgelistet (siehe auch onKeyDown, onKeyUp (Seite 233) und Key-Objekt).

Tabelle 12.3   Erlaubte Funktionstasten für keyPress-Ereignis

Parameter Taste
keyPress "<Backspace>" Rückschritt
keyPress "<Delete>" (Entf)
keyPress "<Down>" (Ű)
keyPress "<End>" (Ende)
keyPress "<Enter>" (˘)
keyPress "<Escape>" (Esc) (beendet normalerweise den Projektor, weshalb diese Taste nicht immer Sinn macht – im Testmodus innerhalb der Entwicklungsumgebung sollte zum Ausprobieren die Einstellung Steuerung Tastenkombinationen deaktivieren eingeschaltet sein)
keyPress "<Home>" (Pos1)
keyPress "<Insert>" (Einfg)
keyPress "<left>" (Ď)
keyPress "<PageDown>" (BildŰ)
keyPress "<PageUp>" (BildÓ)
keyPress "<Right>" (Ě)
keyPress "<Space>" Leer
keyPress "<Tab>" (˙)
keyPress "<Up>" (Ó)

press: Drücken der Maustaste, während sich der Mauszeiger über dem aktiven Bereich der Schaltfläche (hitArea) befindet. Im Gegensatz zu dem mouseDown-Ereignis erhält nur die eine Instanz die Nachricht über das Ereignis, die mit ihrer aktiven Fläche unmittelbar unterhalb des Mauszeigers liegt (siehe auch mouseDown und Mouse-Objekt). release: Loslassen der Maustaste, während sich der Mauszeiger über dem aktiven Bereich der Schaltfläche (hitArea) befindet (siehe auch mouseUp und Mouse-Objekt). releaseOutside: Loslassen der Maustaste, während sich der Mauszeiger außerhalb der Schaltfläche befindet (funktioniert nur, nachdem die Maustaste gedrückt wurde, während sich der Mauszeiger innerhalb der Schaltfläche befand) (siehe auch mouseUp und Mouse-Objekt). rollOut: Ziehen des Mauszeigers aus dem aktiven Bereich der Schaltfläche (hitArea) hinaus. rollOver: Ziehen des Mauszeigers über den aktiven Bereich der Schaltfläche (hitArea).
gp  Beispiele:
on.fla
on (press) {
   trace("press");
}
on (release) {
   trace("release");
}
on (releaseOutside) {
   trace("releaseOutside");
}
on (keyPress "<Enter>") {
   trace("Eingabetaste");
}
on (rollOver) {
   trace("rollOver");
}
on (rollOut) {
   trace("rollOut");
}
on (dragOver) {
   trace("dragOver");
}
on (dragOut) {
   trace("dragOut");
}
Als Menüelement behandeln

Einige Ereignisse verhalten sich anders, sobald eine Instanz als Menüelement behandelt wird. Diese Einstellung nehmen Sie für jede Instanz einzeln entweder im Eigenschafteninspektor (bei Schaltflächen) oder über die Eigenschaft trackAsMenu (bei Buttons und Movieclips) vor. Insbesondere das Ereignis dragOver macht erst in dieser Kombination wirklich Sinn! Sobald nämlich eine Instanz als Menüelement agiert, muss die Ereignisfolge nicht mehr auf der Instanz mit einem Drücken der Maustaste gestartet werden. D.  h. Flash löst dragOver auch aus, wenn Sie die Maustaste irgendwo drücken und dann auf die Instanz ziehen.


Rheinwerk Design - Zum Seitenanfang

12.3.3 onClipEvent  toptop

Die Anweisung onClipEvent leitet einen Block in geschweiften Klammern ein, dessen Ausführung von einem als Parameter angegebenen Ereignis abhängt.

gp  Bemerkung:
    Diese Anweisung steht seit dem Flash Player 5 zur Verfügung (siehe Tabelle »Ereignisprozeduren« auf Seite 295). Diese Anweisung ist nur auf Movieclip-Instanzen und nicht auf Schaltflächeninstanzen oder in Schlüsselbildern erlaubt.
       
gp  Syntax:
onClipEvent (ereignis) {
   anweisung(en);
}
gp  Parameter:
    anweisung(en): Innerhalb der geschweiften Klammern geben Sie die Anweisungen an, die beim Eintritt eines der angegebenen Ereignisse ausgeführt werden sollen.
       
    ereignis: Als Ereignis wird der Auslöser bezeichnet, der zur Ausführung der Anweisungen führt: Wenn das angegebene Ereignis stattfindet, werden die in geschweiften Klammern stehenden Anweisungen abgearbeitet. Die folgenden Werte sind als Ereignis erlaubt:
       
data: Dieses Ereignis wird ausgelöst, wenn Flash durch loadVariables oder loadMovie Daten empfängt. Bei loadVariables tritt das Ereignis einmalig auf, sobald die letzte Variable geladen wurde. Bei loadMovie wird dieses Ereignis während des Ladens mehrmalig beim Empfang der einzelnen Datenpakte ausgelöst. enterFrame: Dieses Ereignis löst eine Flash-Anwendung kontinuierlich in der Geschwindigkeit der Bildrate aus. keyDown: Dieses Ereignis löst Flash immer dann aus, wenn eine Taste gedrückt wird. Mit Hilfe des Key-Objektes ermitteln Sie anschließend, welche Tasten gedrückt sind (siehe auch Key-Objekt). keyUp: Dieses Ereignis tritt beim Loslassen einer Taste ein (siehe auch Key-Objekt). load: Sobald die Movieclip-Instanz in der Zeitleiste erscheint, wird dieses Ereignis ausgelöst. unload: Dieses Ereignis wird im ersten Bild ausgeführt, nachdem die Movieclip-Instanz aus der Zeitleiste entfernt wurde. Erst nachdem die mit dem Movieclip-Ereignis unload verknüpften Anweisungen verarbeitet sind, führt Flash die im betreffenden Bild befindlichen Anweisungen aus. Da die bezüglich des Ereignisses definierte Movieclip-Instanz in diesem Moment nicht mehr existiert, sollten Operationen auf diese vermieden werden. Andernfalls kann es zu unvorhergesehenen Effekten bis hin zum Absturz der Anwendung kommen. mouseMove: Dieses Ereignis wird bei jeder Bewegung der Maus ausgelöst (siehe auch Mouse-Objekt). mouseDown: Das Drücken der Maustaste löst dieses Ereignis aus. Dabei ist es im Gegensatz zu dem press-Ereignis der on-Anweisung egal, wo sich die Maus befindet. mouseUp: Das Loslassen der Maustaste erzeugt dieses Ereignis. Dabei ist es im Gegensatz zu dem release-Ereignis der on-Anweisung egal, wo sich die Maus befindet.
gp  Beispiele:
onClipEvent.fla
onClipEvent (load) {
   trace("load");
}
onClipEvent (enterFrame) {
   trace("enterFrame");
}
onClipEvent (unload) {
   trace("unload"); // erfordert das Entfernen der Instanz
}
onClipEvent (mouseDown) {
   trace("mouseDown");
}
onClipEvent (mouseUp) {
   trace("mouseUp");
}
onClipEvent (mouseMove) {
   trace("mouseMove");
}
onClipEvent (keyDown) {
   trace("keyDown");
}
onClipEvent (keyUp) {
   trace("keyUp");
}
onClipEvent (data) {
   trace("data"); // erfordert ein loadMovie oder loadVariables
}
Benutzerereignis versus Systemereignisse

Einige Ereignisse sind benutzerunabhängig wie z.B. enterFrame. Andere hängen von Aktionen des Benutzers ab. Dazu zählt mouseMove. Nicht immer ist das nächstliegende Ereignis auch das beste. Möchten Sie zum Beispiel ein Objekt abhängig von der Mausbewegung steuern, dann sollten Sie in den meisten Fällen das Ereignis enterFrame dem mouseMove vorziehen. Dies liegt daran, dass Flash die Bewegung der Maus unabhängig von der Bildrate ermittelt und so deutlich mehr Systemressourcen benötigt, obwohl die Position doch nur beim Bildwechsel interessiert (dazwischen wird die Darstellung normalerweise ohnehin nicht aktualisiert).

Sobald die Bildrate der Anwendung jedoch sehr gering ist, kann die Kombination eines Benutzerereignisses mit der Funktion updateAfter Event wiederum Vorteile bieten (siehe updateAfterEvent, Seite 291).

 << zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: ActionScript 1 und 2
ActionScript 1 und 2
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 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.


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