Know-how für Kreative

Inhaltsverzeichnis
1 Erste Schritte
2 Versionen
3 Einführung in die Programmierung
4 Die Entwicklungsumgebung
5 Regeln
6 Anweisungen und Aktionen
7 Werte und Datentypen
8 Ausdrücke und Operatoren
9 Funktionen
10 Kontrollstrukturen
11 Dokumenten-Objektmodell und Gültigkeitsbereich (Scope)
12 Ereignisse
13 Objekterstellung
14 Vererbung
15 Movieclips
16 ActionScript 2.0
17 Komponenten
18 Codedesign und Konzeption
19 Flashdetection
20 Aussergewoehnliche Benutzerfuehrung
21 D mit Flash
22 Macromedia Central
23 HTML
24 JavaScript, ActiveX und Java
25 Flash undokumentiert
26 Vergangenheit, Gegenwart und Zukunft
27 Kurzreferenz
28 Buchtipps
29 Links
30 Die CD-ROM zum Buch
Index
Download: - ZIP, ca. 9,8 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Design / <openbook> / ActionScript | vor >>
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/) Objektorientierung und Codedesign mit Flash MX 2004
ActionScript 1 und 2 672 S., mit CD, Referenzkarte, 44,90 Euro Galileo Design ISBN 3-89842-221-6 |
| Kapitel 12 Ereignisse
|  | 12.1 Vor- und Nachteile
|  |  | 12.1.1 Vor- und Nachteile von Ereignisprozeduren
|  |  | 12.1.2 Vor- und Nachteile von Ereignismethoden
|  |  | 12.1.3 Vor- und Nachteile von Ereignismethoden in Flash 5
|  |  | 12.1.4 Vor- und Nachteile von Listener
|  | 12.2 Reihenfolge der Ereignisse
|  |  | 12.2.1 Bildbasierte Ereignisreihenfolge
|  |  | 12.2.2 Bildunabhängige Ereignisreihenfolge
|  |  | 12.2.3 updateAfterEvent
|  |  | 12.2.4 setInterval
|  |  | 12.2.5 initClip
|  |  | 12.2.6 _changed
|  | 12.3 Ereignisprozeduren
|  |  | 12.3.1 Fehlerquelle
|  |  | 12.3.2 on
|  |  | 12.3.3 onClipEvent
|  | 12.4 Ereignismethoden
|  |  | 12.4.1 allowDomain
|  |  | 12.4.2 allowInsecureDomain
|  |  | 12.4.3 onActivity
|  |  | 12.4.4 onChanged
|  |  | 12.4.5 onClose
|  |  | 12.4.6 onConnect
|  |  | 12.4.7 onData
|  |  | 12.4.8 onDragOut
|  |  | 12.4.9 onDragOver
|  |  | 12.4.10 onEnterFrame
|  |  | 12.4.11 onID3
|  |  | 12.4.12 onKeyDown
|  |  | 12.4.13 onKeyUp
|  |  | 12.4.14 onKillFocus
|  |  | 12.4.15 onLoad
|  |  | 12.4.16 onMouseDown
|  |  | 12.4.17 onMouseMove
|  |  | 12.4.18 onMouseUp
|  |  | 12.4.19 onPress
|  |  | 12.4.20 onRelease
|  |  | 12.4.21 onReleaseOutside
|  |  | 12.4.22 onRollOut
|  |  | 12.4.23 onRollOver
|  |  | 12.4.24 onScroller
|  |  | 12.4.25 onSelect
|  |  | 12.4.26 onSetFocus
|  |  | 12.4.27 onSoundComplete
|  |  | 12.4.28 onStatus
|  |  | 12.4.29 onSync
|  |  | 12.4.30 onUnload
|  |  | 12.4.31 onUpdate
|  |  | 12.4.32 onXML
|  | 12.5 Listener
|  |  | 12.5.1 Listener simulieren
|  |  | 12.5.2 AsBroadcaster
|  |  | 12.5.3 onChanged
|  |  | 12.5.4 onKeyDown
|  |  | 12.5.5 onKeyUp
|  |  | 12.5.6 onMouseDown
|  |  | 12.5.7 onMouseMove
|  |  | 12.5.8 onMouseUp
|  |  | 12.5.9 onMouseWheel
|  |  | 12.5.10 onResize (Stage)
|  |  | 12.5.11 onScroller(target)
|  |  | 12.5.12 onSetFocus (Selection)
## 12.4 Ereignismethoden Die Liste der Ereignismethoden (siehe Tabelle »Ereignismethoden« ab Seite 302) umfasst eine ganze Reihe an Objekten und deren zugehörige Methoden. Dabei sind einige Ereignismethoden polymorph. D.h. einige Methoden wie zum Beispiel onLoad existieren für unterschiedliche Objektarten mit abweichendem Verhalten. ##### Polymorphismus Der Polymorphismus ist ein Verhalten der Objektorientierung. Dabei sind Objekte polymorph, wenn Sie gleichnamige Methoden besitzen, die unterschiedliche Fähigkeiten beschreiben. Die Methode fass funktioniert bei einem Menschen zum Beispiel anders als bei einem Hund. Ereignismethoden entsprechen normalen Methoden, die Flash beim Eintritt des zugehörigen Ereignisses automatisch aufruft. Da es sich wie gesagt bei Ereignismethoden im Wesentlichen um Methoden handelt, verhält sich nicht nur die Erstellung identisch. Zusätzlich ist auch der Aufruf wie bei normalen Methoden erlaubt. Das folgende Beispiel arbeitet zum Beispiel die in der Ereignismethode onLoad angegebenen Anweisungen auch ohne das zugehörige Ereignis ab:
    // onLoad funktioniert bei Ereignismethoden nicht immer korrekt (siehe Buch)
##### Ereignismethode als methode.fla
    mcSeepferdchen.onLoad = function() {
       // Positioniere die Instanz
       trace("Init");
       this._x = 275;
       this._y = 200;
    };
    // "Händischer" Aufruf der Ereignismethode onLoad in der Instanz mcSeepferdchen
    mcSeepferdchen.onLoad();
    mcSeepferdchen.onEnterFrame = function() {
       // Skaliere Instanz abhängig vom Abstand zum Mauszeiger
       var deltax = this._parent._xmouse-this._x;
       var deltay = this._parent._ymouse-this._y;
       // Phytagoras zur Abstandsberechnung
       var entfernung = Math.sqrt(deltax*deltax+deltay*deltay);
       // Logarithmus für realistischeren Entfernungseindruck
       var scale = 100/Math.log(entfernung+10);
       this._xscale = scale;
       this._yscale = scale;
       // Bewege Instanz in Richtung Mauszeiger
       this._x = this._x+(this._parent._xmouse-this._x)/8;
       this._y = this._y+(this._parent._ymouse-this._y)/8;
    };
    mcSeepferdchen.onMouseDown = function() {
       // "Händischer" Aufruf der Ereignismethode onLoad in derselben Instanz
       this.onLoad();
    };
    // Alternative
    mcSeepferdchen.onMouseDown = mcSeepferdchen.onLoad;

Tabelle 12.4 Ereignismethoden und früheste unterstützte Flash-Version (Tabelle 1)

Ereignismethode | Button | Camera | ContextMenu | ContextMenuItem
allowDomain |  |  |  |
allowInsecureDomain |  |  |  |
onActivity |  | 6 |  |
onChanged |  |  |  |
onClose |  |  |  |
onConnect |  |  |  |
onData |  |  |  |
onDragOut | 6 |  |  |
onDragOver | 6 |  |  |
onEnterFrame |  |  |  |
onID3 |  |  |  |
onKeyDown | 6 |  |  |
onKeyUp | 6 |  |  |
onKillFocus | 6 |  |  |
onLoad |  |  |  |
onMouseDown |  |  |  |
onMouseMove |  |  |  |
onMouseUp |  |  |  |
onPress | 6 |  |  |
onRelease | 6 |  |  |
onReleaseOutside | 6 |  |  |
onRollOut | 6 |  |  |
onRollOver | 6 |  |  |
onSelect |  |  | 7 | 7
onScroller |  |  |  |
onSetFocus | 6 |  |  |
onSoundComplete |  |  |  |
onStatus |  | 6 |  |
onSync |  |  |  |
onUnload |  |  |  |
onUpdate |  |  |  |
onXML |  |  |  |

Tabelle 12.5 Ereignismethoden und früheste unterstützte Flash-Version (Tabelle 2)

Ereignismethode | LoadVars | LocalConnection | Microphone | MovieClip
allowDomain |  | 6 |  |
allowInsecureDomain |  | 7 |  |
onActivity |  |  | 6 |
onChanged |  |  |  |
onClose |  |  |  |
onConnect |  |  |  |
onData | 6 |  |  | 6
onDragOut |  |  |  | 6
onDragOver |  |  |  | 6
onEnterFrame |  |  |  | 6
onID3 |  |  |  |
onKeyDown |  |  |  | 6
onKeyUp |  |  |  | 6
onKillFocus |  |  |  | 6
onLoad | 6 |  |  | 6
onMouseDown |  |  |  | 6
onMouseMove |  |  |  | 6
onMouseUp |  |  |  | 6
onPress |  |  |  | 6
onRelease |  |  |  | 6
onReleaseOutside |  |  |  | 6
onRollOut |  |  |  | 6
onRollOver |  |  |  | 6
onSelect |  |  |  |
onScroller |  |  |  |
onSetFocus |  |  |  | 6
onSoundComplete |  |  |  |
onStatus |  | 6 | 6 |
onSync |  |  |  |
onUnload |  |  |  | 6
onUpdate |  |  |  | 6
onXML |  |  |  |

Tabelle 12.6 Ereignismethoden und früheste unterstützte Flash-Version (Tabelle 3)

Ereignismethode | NetConnection | NetStream | SharedObject | Sound
allowDomain |  |  |  |
allowInsecureDomain |  |  |  |
onActivity |  |  |  |
onChanged |  |  |  |
onClose |  |  |  |
onConnect |  |  |  |
onData |  |  |  |
onDragOut |  |  |  |
onDragOver |  |  |  |
onEnterFrame |  |  |  |
onID3 |  |  |  | 7
onKeyDown |  |  |  |
onKeyUp |  |  |  |
onKillFocus |  |  |  |
onLoad |  |  |  | 6
onMouseDown |  |  |  |
onMouseMove |  |  |  |
onMouseUp |  |  |  |
onPress |  |  |  |
onRelease |  |  |  |
onReleaseOutside |  |  |  |
onRollOut |  |  |  |
onRollOver |  |  |  |
onSelect |  |  |  |
onScroller |  |  |  |
onSetFocus |  |  |  |
onSoundComplete |  |  |  | 6
onStatus | 6 | 6 | 6 |
onSync |  |  | 6 |
onUnload |  |  |  |
onUpdate |  |  |  |
onXML |  |  |  |

Tabelle 12.7 Ereignismethoden und früheste unterstützte Flash-Version (Tabelle 4)

Ereignismethode | System | Textfield | Textfield. Stylesheet | XML | XMLSocket
allowDomain |  |  |  |  |
allowInsecureDomain |  |  |  |  |
onActivity |  |  |  |  |
onChanged |  | 6 |  |  |
onClose |  |  |  |  | 5
onConnect |  |  |  |  | 5
onData |  |  | 7 | 5 | 5
onDragOut |  |  |  |  |
onDragOver |  |  |  |  |
onEnterFrame |  |  |  |  |
onID3 |  |  |  |  |
onKeyDown |  |  |  |  |
onKeyUp |  |  |  |  |
onKillFocus |  | 6 |  |  |
onLoad |  |  | 7 | 5 |
onMouseDown |  |  |  |  |
onMouseMove |  |  |  |  |
onMouseUp |  |  |  |  |
onPress |  |  |  |  |
onRelease |  |  |  |  |
onReleaseOutside |  |  |  |  |
onRollOut |  |  |  |  |
onRollOver |  |  |  |  |
onSelect |  |  |  |  |
onScroller |  | 6 |  |  |
onSetFocus |  | 6 |  |  |
onSoundComplete |  |  |  |  |
onStatus | 6 |  |  |  |
onSync |  |  |  |  |
onUnload |  |  |  |  |
onUpdate |  |  |  |  |
onXML |  |  |  |  | 5
### 12.4.1 allowDomain Das Ereignis allowDomain wird immer dann ausgelöst, wenn eine Flash-Anwendung per lokaler Verbindung von einer anderen Anwendung angesprochen wird (siehe LocalConnection, Seite 623).
| Bemerkung:
| Diese Ereignismethode steht seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     localConnectionInstanz.allowDomain(sendendeDomain);
### 12.4.2 allowInsecureDomain Das Ereignis allowInsecureDomain wird immer dann ausgelöst, wenn eine Flash-Anwendung aus einer sicheren Domain (https) per lokaler Verbindung von einer anderen Anwendung aus einer unsicheren Domain angesprochen wird (siehe LocalConnection, Seite 623).
| Bemerkung:
| Diese Ereignismethode steht seit dem Flash Player 7 zur Verfügung.
| Syntax:
>     localConnectionInstanz.allowInsecureDomain(sendendeDomain);
### 12.4.3 onActivity Das Ereignis onActivity wird immer dann ausgelöst, wenn ein angeschlossenes Mikrofon (Audioquelle) oder eine angeschlossene Kamera (Videoquelle) eine festgelegte Stufe an Veränderung überschreitet. Dies können Sie zum Beispiel für einen Bewegungsmelder oder ein Babyphon verwenden (siehe Camera (Seite 616) und Microphone (Seite 624)).
| Bemerkung:
| Diese Ereignismethode steht seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     cameraInstanz.onActivity(aktivität);
>     microphoneInstanz.onActivity(aktivität);
| Parameter:
| aktivität: Dieser boolesche Parameter wird automatisch an die Ereignismethode übergeben und legt fest, ob Aktivität erkannt (true) oder beendet wurde (false).
| Beispiel:
>     // Babyphone
> ##### onActivity.fla
>     meinMikrofon=Microphone.get();
>     // Bestimme Aktivitätsschwelle
>     meinMikrofon.setSilenceLevel(20,10);
>     meinMikrofon.onActivity = function(aktivitaet) {
>        if (aktivitaet) {
>           mcAnzeige.gotoAndStop(1);
>        } else {
>           mcAnzeige.gotoAndStop(2);
>        }
>     }
>     // Audioquelle muss zur Bestimmung der Aktivität verwendet werden
>     _root.attachAudio(meinMikrofon);
### 12.4.4 onChanged Das Ereignis onChanged wird immer dann ausgelöst, wenn sich der Inhalt eines Textfeldes verändert. Dies können Sie zum Beispiel für die Überprüfung einer Formulareingabe verwenden (siehe Textfield, Seite 653).
| Bemerkung:
| Diese Ereignismethode steht seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     textfeldInstanz.onChanged();
| Beispiel:
>     meinTextfeld.onChanged=function () {
> ##### onChanged.fla
>        trace("meinTextfeld wurde verändert!");
>     }
### 12.4.5 onClose Das Ereignis onClose wird immer dann ausgelöst, wenn ein Socket-Server die Verbindung zu einer XMLSocket-Instanz beendet (siehe XMLSocket, Seite 641).
| Bemerkung:
| Diese Ereignismethode steht seit dem Flash Player 5 zur Verfügung.
| Syntax:
>     xmlSocketInstanz.onChanged();
### 12.4.6 onConnect Das Ereignis onConnect wird immer dann ausgelöst, wenn ein Verbindungsaufbau zu einem Socket-Server erfolgreich war oder fehlgeschlagen ist (siehe XMLSocket, Seite 641).
| Bemerkung:
| Diese Ereignismethode steht seit dem Flash Player 5 zur Verfügung.
| Syntax:
>     xmlSocketInstanz.onConnect(erfolgreich);
| Parameter:
| erfolgreich: Ein boolescher Wert, der angibt, ob eine Socket-Verbindung erfolgreich hergestellt wurde (true) oder nicht (false).
### 12.4.7 onData Das Ereignis onData wird immer dann ausgelöst, wenn Daten geladen werden. Dies können Sie zum Beispiel für einen Preloader verwenden (siehe MovieClip, LoadVars, XML und XMLSocket in der Kurzreferenz).
| Bemerkung:
##### Für loadVars ist diese Methode undokumentiert.
| Diese Ereignismethode steht für XML und XMLSocket-Instanzen seit dem Flash Player 5 und für Movieclips sowie LoadVars-Instanzen seit dem Flash Player 6 zur Verfügung. Seit dem Flash Player 7 gibt es dieses Ereignis auch noch für TextField.StyleSheet-Instanzen.
| Bei Movieclips wird diese Methode nach dem Empfang einzelner Teile der zugehörigen SWF-Datei aufgerufen. Bei LoadVars-, TextField.StyleSheet-, XML- und XMLSocket-Instanzen kommt es erst nach dem Abschluss der gesamten Ladeoperation zu dem Ereignis.
| Die Ereignismethode onData ist darüber hinaus für LoadVars-, TextField.Stylesheet-, XML- und XMLSocket-Instanzen bereits vordefiniert und führt zum »Parsen« (Umwandeln in Flash-Datenstruktur) der eingelesenen Zeichenkette und dem anschließenden Aufruf der onLoad-Methode bei loadVars und XML oder der onXML-Methode bei xmlSocket.
| Syntax:
>     movieClipInstanz.onData();
>     loadVars.onData(daten);
>     textFieldStyleSheetInstanz.onData(daten);
>     xmlInstanz.onData(daten);
>     xmlSocketInstanz.onData(daten);
| Parameter:
| daten: Diese Zeichenkette wird bei LoadVars-, XML- und XMLSocket-Instanzen automatisch an die Ereignismethode übergeben und beinhaltet die geladenen Daten. Ist das Laden fehlgeschlagen, ist der Wert undefined.
| Beispiel:
| Das folgende Beispiel ist die Standarddefinition der Ereignismethode onData für XML-Instanzen:
>     XML.prototype.onData = function (daten) {
> ##### onData.fla
>        if (daten == undefined) {
>           this.onLoad(false);
>        } else {
>           this.parseXML(daten);
>           this.loaded = true;
>           this.onLoad(true);
>        }
>     }
| Die Methode onData kann überschrieben werden, damit die geladenen Daten erfasst und zum Beispiel als Zeichenkette erhalten bleiben. Auf diese Art lädt Flash beliebige textbasierte Inhalte:
>     meinXML = new XML();
>     meinXML.onData = function (daten) {
>        trace("Geladene Zeichenkette = " + daten);
>     }
>     meinXML.load("daten.txt");
##### Zeichenkodierung Das Laden von textbasierten Inhalten hat Macromedia von Flash 5 nach Flash 6 geändert. Es basiert nun auf Unicode. Aus diesem Grund sollten Sie Dokumente für Flash 6 als Unicode (oder UTF-8) bereitstellen. Alternativ kann Flash 6 mit der Eigenschaft System.useCodepage=true auch dazu gezwungen werden, die Zeichenkodierung des Betriebssystems zu verwenden. ### 12.4.8 onDragOut Das Ereignis onDragOut wird immer dann ausgelöst, wenn auf den aktiven Bereich einer Instanz geklickt und dann der Mauszeiger mit gedrückter Maustaste aus dem aktiven Bereich herausgezogen wird (siehe Movieclip und Button in der Kurzreferenz).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips und Buttons seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onDragOut();
>     buttonInstanz.onDragOut();
| Beispiel:
>     meinMovieclip.onDragOut = function () {
>        // Vergrößere Instanz
>        this._xscale=this._xscale*1.1;
>        this._yscale=this._yscale*1.1;
>     };
### 12.4.9 onDragOver Das Ereignis onDragOver wird ausgelöst, wenn auf den aktiven Bereich einer Instanz geklickt, der Mauszeiger mit gedrückter Maustaste aus dem aktiven Bereich herausgezogen und anschließen wieder hineingezogen wird (siehe Movieclip und Button).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips und Buttons seit dem Flash Player 6 zur Verfügung (siehe Tabelle »Ereignismethoden und früheste unterstützte Flash-Version«).
| Einige Ereignismethoden 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 die Ereignismethode onDragOver 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 ruft die Methode onDragOver auch auf, wenn Sie die Maustaste irgendwo drücken und dann auf die Instanz ziehen.
| Syntax:
>     movieClipInstanz.onDragOver();
>     buttonInstanz.onDragOver();
| Beispiel:
>     meinMovieclip.trackAsMenu = true;
> ##### onDragOver.fla
>     meinMovieclip.onDragOver = function() {
>        // Verkleinere Instanz
>        this._xscale = this._xscale/1.1;
>        this._yscale = this._yscale/1.1;
>     };
### 12.4.10 onEnterFrame Das Ereignis onEnterFrame wird immer dann ausgelöst, wenn ein Bildwechsel stattfindet. Diese Ereignismethode verwenden Sie zum Beispiel immer dann, wenn Anweisungen regelmäßig wiederholt werden müssen (siehe Movieclip).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onEnterFrame();
| Beispiel:
>     mcKuh.onEnterFrame = function() {
> ##### onEnterFrame.fla
>        // Bewege Objekt von links nach recht
>        this._x = (this._x+5);
>        // Beschränke auf die Bühne (Modulo-Operation)
>        this._x = this._x%550;
>        // Bewege auf und ab
>        this._y = 200-Math.abs(Math.sin(this._x/25))*50;
>     };
##### Hauptprogramm (main) Einige Programmiersprachen benötigen eine Art »Hauptprogramm«. Bei dieser häufig als main bezeichneten Methode handelt es sich um den Kern der Anwendung. Häufig besteht diese Methode aus einer sich regelmäßig wiederholenden Schleife, die den gesamten Programmablauf steuert. Da Flash eine ereignisorientierte Sprache ist, gibt es diese Form eines »Hauptprogramms« nicht. Dennoch kann eine Hauptschleife (Mainloop), also eine sich wiederholende Programmsteuerung, erzeugt werden, indem zum Beispiel die Hauptzeitleiste mit einer onEnterFrame-Ereignismethode versehen wird. Gerade für Spiele ist das häufig nützlich:
    _root.onEnterFrame = function() {
       // Überprüfe Kollisionen
       anweisungen;
       // Bewege Objekte
       anweisungen;
    };
### 12.4.11 onID3 Das Ereignis onID3 wird immer dann ausgelöst, wenn eine Sound-Instanz ID3-Informationen empfängt (siehe Sound, Seite 632).
| Bemerkung:
| Diese Ereignismethode steht offiziell seit dem Flash Player 7 zur Verfügung.
| Syntax:
>     soundInstanz.onID3();
### 12.4.12 onKeyDown Das Ereignis onKeyDown wird immer dann ausgelöst, wenn eine Taste gedrückt wird (siehe Movieclip, Seite 625). Um die gedrückte Taste zu ermitteln, verwenden Sie das Key-Objekt.
| Bemerkung:
| Diese Ereignismethode steht für Movieclips und Buttons seit dem Flash Player 6 zur Verfügung.
##### Achtung
| Für die korrekte Funktionsweise dieser Ereignismethode ist jedoch der Fokus erforderlich:
>     movieClipInstanz.focusEnabled = true;
>     Selection.setFocus(movieClipInstanz);
| Alternativ bietet sich für Tastatureingaben der gleichnamige Listener an. Dieser arbeitet vom Fokus unabhängig (siehe Listener).
| Syntax:
>     movieClipInstanz.onKeyDown();
>     buttonInstanz.onKeyDown();
| Beispiel:
>     mcMonster.focusEnabled = true;
> ##### onKeyDown.fla
>     mcMonster.onKeyDown = function() {
>        this._x = 500;
>     };
>     mcMonster.onEnterFrame = function() {
>        this._x = this._x/1.1;
>        Selection.setFocus(mcMonster);
>     };
### 12.4.13 onKeyUp Das Ereignis onKeyDown wird immer dann ausgelöst, wenn eine Taste losgelassen wird (siehe Movieclip, Seite 625). Um die losgelassene Taste zu ermitteln, verwenden Sie das Key-Objekt.
| Bemerkung:
| Diese Ereignismethode steht für Movieclips und Buttons seit dem Flash Player 6 zur Verfügung.
##### Achtung
| Für die korrekte Funktionsweise dieser Ereignismethode ist jedoch der Fokus erforderlich:
>     movieClipInstanz.focusEnabled = true;
>     Selection.setFocus(movieClipInstanz);
| Alternativ bietet sich für Tastatureingaben der gleichnamige Listener an. Dieser arbeitet vom Fokus unabhängig (siehe Listener, Seite 325).
| Syntax:
>     movieClipInstanz.onKeyUp();
>     buttonInstanz.onKeyUp();
| Beispiel:
>     mcMonster.focusEnabled = true;
> ##### onKeyUp.fla
>     mcMonster.onKeyUp = function() {
>        this._y = 400;
>     };
>     mcMonster.onEnterFrame = function() {
>        this._y = this._y/1.1;
>        Selection.setFocus(mcMonster);
>     };
### 12.4.14 onKillFocus Das Ereignis onKillFocus wird immer dann ausgelöst, wenn eine Instanz den Fokus verliert. Dies können Sie zum Beispiel für Formularüberprüfungen verwenden (siehe Button, Movieclip und Textfield).
| Bemerkung:
| Diese Ereignismethode steht für Button-, Movieclip- und Textfield-Instanzen seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onKillFocus(neuerFokus);
>     buttonInstanz.onKillFocus(neuerFokus);
>     textfieldInstanz.onKillFocus(neuerFokus);
| Parameter:
| neuerFokus: Dieser Parameter beinhaltet einen Zeiger auf die Instanz mit dem neuen Fokus.
| Beispiel:
>     meinTextfeld1.onKillFocus=function (neuerFokus) {
> ##### onKillFocus.fla
>        trace("Sie haben den Fokus zu "
>         + neuerFokus + " gewechselt!");
>     }
### 12.4.15 onLoad Das Ereignis onLoad wird immer dann ausgelöst, wenn ein Ladevorgang abgeschlossen ist (LoadVars, Sound, TextField.StyleSheet, XML) oder eine Instanz erzeugt wird (Movieclip). Dies verwenden Sie zum Beispiel für Initialisierungsanweisungen (siehe LoadVars, Sound, TextField.StyleSheet, XML und Movieclip in der Kurzreferenz).
| Bemerkung:
| Diese Ereignismethode steht für LoadVars-, Sound- und Movieclip-Instanzen seit dem Flash Player 6 zur Verfügung, das XML-Objekt beherrscht diese Ereignismethode bereits seit Flash 5, TextField.StyleSheet gibt es erst seit dem Flash Player 7.
| Syntax:
>     movieClipInstanz.onLoad();
>     soundInstanz.onLoad();
>     xmlInstanz.onLoad(erfolgreich);
>     loadVarsInstanz.onLoad(erfolgreich);
>     textFieldStyleSheetInstanz.onLoad(erfolgreich);
| Parameter:
| erfolgreich: Dieser Parameter wird automatisch an die Ereignismethode übergeben und beinhaltet bei einem erfolgreichen Ladevorgang den Wert true, bei einem fehlgeschlagenen Ladevorgang false.
| Beispiel:
>     meinSound = new Sound();
> ##### onLoad.fla
>     meinSound.onLoad = function() {
>        this.start();
>     };
>     meinSound.loadSound("meinSound.mp3");}
##### Ereignismethode onLoad geht nicht Die Ereignismethode onLoad widersetzt sich in manchen Situationen den eigenen Vorstellungen und scheint nicht auf Ereignisse zu reagieren. Dies passiert bei Movieclips z.B. immer dann, wenn eine Instanz keine Ereignisprozeduren besitzt. Aus diesem Grund ist es in diesem Fall von Vorteil, auf die onLoad-Methode zu verzichten und notwendige Initialisierungen direkt zuzuweisen (ohnehin kann eine Methode einer Instanz ja erst dann zugewiesen werden, wenn diese bereits existiert, und dann kann es ja auch kein Ereignis mehr über die Erzeugung geben): Anstelle von
    mcMonster.onLoad = function() {
##### onLoad vermeiden.fla
       // Initialisiere Startposition
       this._x = 10;
       this._y = 10;
    };
    schreiben Sie
    // Initialisiere Startposition
    mcMonster._x = 10;
    mcMonster._y = 10;
Bei Ereignisprozeduren (onClipEvent) gibt es dieses eigentümliche Verhalten glücklicherweise nicht. Aber auch bei den anderen Objektarten kommt es gelegentlich zu einer Ignoranz gegenüber dieser Methode. Dies liegt meist daran, dass die Definition der onLoad-Methode nach dem Aufruf des Ladevorgangs platziert ist und deshalb in einigen wenigen Fällen beim Abschluss des Ladens noch gar nicht existiert. Definieren Sie darum immer zuerst alle Ereignismethoden, bevor Sie weitere Methoden aufrufen.
    // falsch
    meineInstanz.load(url);
    meineInstanz.onLoad=function () {…};
    // richtig
    meineInstanz.onLoad=function () {…};
    meineInstanz.load(url);
### 12.4.16 onMouseDown Das Ereignis onMouseDown wird immer dann ausgelöst, wenn der Anwender die Maustaste drückt (siehe Movieclip, Seite 625).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips seit dem Flash Player 6 zur Verfügung.
| Im Gegensatz zu onPress muss sich der Mauszeiger nicht im aktiven Bereich der Button- oder Movieclip-Instanz befinden.
| Syntax:
>     movieClipInstanz.onMouseDown();
| Beispiel:
>     this.lineStyle(0, 0xFF0000, 100);
> ##### onMouseDown.fla
>     this.moveTo(this._xmouse, this._ymouse);

>     this.onMouseDown=function () {
>        // Zeichne Linie bis zum Mauszeiger
>        this.lineTo(this._xmouse, this._ymouse);
>     }
### 12.4.17 onMouseMove Das Ereignis onMouseMove wird immer dann ausgelöst, wenn der Anwender die Maus bewegt (siehe Movieclip, Seite 625).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onMouseMove();
| Beispiel:
>     this.lineStyle(0, 0xFF0000, 100);
>     this.moveTo(this._xmouse, this._ymouse);

>     this.onMouseDown=function () {
>        // Zeichne Linie bis zum Mauszeiger
>        this.lineTo(this._xmouse, this._ymouse);
>     }
### 12.4.18 onMouseUp Das Ereignis onMouseUp wird immer dann ausgelöst, wenn der Anwender die Maustaste loslässt (siehe Movieclip, Seite 625).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips seit dem Flash Player 6 zur Verfügung.
| Im Gegensatz zu onRelease muss sich der Mauszeiger nicht im aktiven Bereich der Button- oder Movieclip-Instanz befinden.
| Syntax:
>     movieClipInstanz.onMouseUp();
| Beispiel:
>     // Minimalprogramm
> ##### onMouseUp.fla
>     this.lineStyle(0, 0xFF0000, 100);

>     this.onMouseDown=function () {
>        // Aktiviere das Zeichnen
>        this.moveTo(this._xmouse, this._ymouse);
>        this.zeichne=true;
>     }
>     this.onMouseUp=function () {
>        // Deaktiviere das Zeichnen
>        this.zeichne=false;
>     }

>     this.onMouseMove=function () {
>        // Zeichne Linie bis zum Mauszeiger
>        if (this.zeichne) {
>           this.lineTo(this._xmouse, this._ymouse);
>        }
>     }
### 12.4.19 onPress Das Ereignis onPress wird immer dann ausgelöst, wenn der Anwender auf den aktiven Bereich einer Instanz klickt (siehe Button und Movieclip).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips und Buttons seit dem Flash Player 6 zur Verfügung).
| Syntax:
>     movieClipInstanz.onPress();
>     buttonInstanz.onPress();
| Beispiel:
>     mcMonster.onPress = function () {
> ##### onPress.fla
>        // Mache unsichtbar
>        this._visible = false;
>     };
### 12.4.20 onRelease Das Ereignis onRelease wird immer dann ausgelöst, wenn der Anwender auf den aktiven Bereich einer Instanz klickt und dann die Maustaste wieder loslässt (siehe Button und Movieclip).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips und Buttons seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onRelease();
>     buttonInstanz.onRelease();
| Beispiel:
>     mcMonster.onRelease = function() {
> ##### onRelease.fla
>        // Wechsle zu Website
>        this.getURL("http://www.flashforum.de");
>     };
### 12.4.21 onReleaseOutside Das Ereignis onReleaseOutside wird immer dann ausgelöst, wenn der Anwender auf den aktiven Bereich einer Instanz klickt und die Maustaste außerhalb des aktiven Bereichs wieder loslässt (siehe Button und Movieclip).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips und Buttons seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onReleaseOutside();
>     buttonInstanz.onReleaseOutside();
| Beispiel:
>     mcMonster.onPress = function() {
> ##### onReleaseOutside.fla
>        // Starte Drag and Drop (Ziehen und Loslassen)
>        this.startDrag();
>     };
>     mcMonster.onRelease = function() {
>        // Stoppe Drag and Drop
>        this.stopDrag();
>     };
>     // Weise onReleaseOutside die gleiche Methode zu
>      wie onRelease, damit auch bei schnellen Mausbewegungen
>      das Ziehen beendet wird
>     mcMonster.onReleaseOutside = mcMonster.onRelease;
### 12.4.22 onRollOut Das Ereignis onRollOut wird immer dann ausgelöst, wenn der Anwender den Mauszeiger aus dem aktiven Bereich einer Instanz hinausbewegt (siehe Button und Movieclip).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips und Buttons seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onRollOut();
>     buttonInstanz.onRollOut();
| Beispiel:
>     mcMonster.onRollOut = function() {
> ##### onRollOut.fla
>        // Mache transparent
>        this._alpha = 10;
>     };
### 12.4.23 onRollOver Das Ereignis onRollOver wird immer dann ausgelöst, wenn der Anwender den Mauszeiger in den aktiven Bereich einer Instanz bewegt (siehe Button und Movieclip).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips und Buttons seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onRollOver();
>     buttonInstanz.onOllOver();
| Beispiel:
>     mcMonster.onRollOver = function() {
> ##### onRollOver.fla
>        // Mache opak
>        this._alpha = 100;
>     };
>     mcMonster.onRollOut = function() {
>        // Mache transparent
>        this._alpha = 10;
>     };
### 12.4.24 onScroller Das Ereignis onScroller wird immer dann ausgelöst, wenn der Inhalt eines Textfeldes horizontal oder vertikal verschoben (gescrollt) wird (siehe Textfield, Seite 653).
| Bemerkung:
| Diese Ereignismethode steht für Textfield-Instanzen seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     textfieldInstanz.onScroller();
>     textfieldInstanz.onScroller(target);
| Parameter:
| target: Dieser Parameter beinhaltet eine Referenz auf das Objekt, das angewählt wurde.
| Beispiel:
>     meinTextfeld.onScroller=function () {
> ##### onScroller.fla
>        trace("Der Inhalt des Textfeldes wurde bewegt.");
>     }
>     // oder mit Parameter
>     meinTextfeld.onScroller=function (target) {
>        trace("Der Inhalt des Textfeldes " + target + " wurde bewegt.");
>     }
### 12.4.25 onSelect Das Ereignis onSelect wird immer dann ausgelöst, wenn der Anwender eine ContextMenu-Instanz oder eine ContextMenuItem-Instanz wählt.
| Bemerkung:
| Diese Ereignismethode steht für ContextMenus und ContextMenuItems seit dem Flash Player 7 zur Verfügung.
| Syntax:
>     contextMenuInstanz.onSelect(item, menuItem);
>     contextMenuItemInstanz.onSelect(item, menuItem);
| Parameter:
| item: Dieser Parameter beinhaltet eine Referenz auf das Objekt, das mit der rechten Maustaste angewählt wurde.
| menuItem: Dieser Parameter beinhaltet eine Referenz auf den Menüeintrag im Kontextmenü, der angewählt wurde.
### 12.4.26 onSetFocus Das Ereignis onSetFocus wird immer dann ausgelöst, wenn eine Instanz den Fokus erhält. Dies können Sie zum Beispiel für Formularüberprüfungen verwenden (siehe Button, Movieclip und Textfield).
| Bemerkung:
| Diese Ereignismethode steht für Button-, Movieclip- und Textfield-Instanzen seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onSetFocus(alterFokus);
>     buttonInstanz.onSetFocus(alterFokus);
>     textfieldInstanz.onSetFocus(alterFokus);
| Parameter:
| alterFokus: Dieser Parameter beinhaltet einen Zeiger auf die Instanz mit dem vorhergehenden Fokus. Besaß im Vorfeld keine andere Instanz den Fokus, so ist der Wert null.
| Beispiel:
>     meinTextfeld1.onSetFocus = function(alterFokus) {
> ##### onSetFocus.fla
>        trace("Textfeld hat den Fokus von "
>         + alterFokus + " erhalten!");
>     };
### 12.4.27 onSoundComplete Das Ereignis onSoundComplete wird immer dann ausgelöst, wenn ein Sound komplett abgespielt ist. Dies können Sie zum Beispiel für die Synchronisation von Geräuschen verwenden (siehe Sound, Seite 632).
| Bemerkung:
| Diese Ereignismethode steht für Sound-Instanzen seit dem Flash Player 6 zur Verfügung.
##### Hinweis
| onSoundComplete ist eine Methode, die Flash unabhängig von der Bildrate aufruft. Dennoch hängt die Abarbeitungsgeschwindigkeit von der Bildrate ab, was eine genaue Synchronisation von Geräuschen enorm schwierig gestaltet.
| Syntax:
>     soundInstanz.onSoundComplete();
| Beispiel:
>     meinSound = new Sound();
> ##### onSoundComplete.fla
>     meinSound.attachSound("soundSymbol");
>     meinSound.onSoundComplete = function() {
>        this.start();
>     };
>     meinSound.start();
### 12.4.28 onStatus Das Ereignis onStatus wird immer dann ausgelöst, wenn sich der Status einer Instanz verändert (siehe Camera, LocalConnection, Microphone, NetConnection, NetStream, SharedObject und System in der Kurzreferenz).
| Bemerkung:
| Diese Ereignismethode steht für Camera-, LocalConnection-, Microphone-, NetConnection-, NetStream-, SharedObject und System-Instanzen seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     cameraInstanz.onStatus(info);
>     localConnectionInstanz.onStatus(info);
>     microphoneInstanz.onStatus(info);
>     netConnectionInstanz.onStatus(info);
>     netStreamInstanz.onStatus(info);
>     sharedObjectInstanz.onStatus(info);
>     System.onStatus(info);
| Parameter:
| info: Dieser Parameter beinhaltet ein Objekt mit Eigenschaften, die den Status beschreiben.
| Beispiel:
>     meineKamera = Camera.get();
> ##### onStatus.fla
>     // Veränderungen im Zugriffsschutz innerhalb der
>      Einstellungen lösen eine Statusänderung aus
>     meineKamera.onStatus = function(info) {
>        trace("Status-Code: "+info.code);
>        trace("Status-Level: "+info.level);
>     };
>     // Zeige Einstellungen des Flash Players
>     System.showSettings(0);
### 12.4.29 onSync Das Ereignis onSync wird immer dann ausgelöst, wenn sich der Inhalt eines entfernten gemeinsam genutzten Objektes (engl. remote shared object) verändert. Dies verwenden Sie zum Beispiel zur Synchronisation der lokalen Inhalte (Client) mit den entfernten Daten (Server) (siehe SharedObject, Seite 631).
| Bemerkung:
| Diese Ereignismethode steht für SharedObject-Instanzen seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     sharedObjectInstanz.onSync(daten);
| Parameter:
| daten: Dieser Parameter beinhaltet ein Array mit den Änderungen des serverseitigen SharedObjects.
### 12.4.30 onUnload Das Ereignis onUnload wird unmittelbar im nächsten Bild nach dem Entfernen einer Movieclip-Instanz ausgelöst (siehe Movieclip, Seite 625).
| Bemerkung:
| Diese Ereignismethode steht für Movieclips seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onUnload();
| Beispiel:
>     // Erzeuge Instanz
> ##### onUnload.fla
>     _root.attachMovie("monster", "mcMonster", 1);
>     // Positioniere Instanz
>     mcMonster._x = Math.random()*150+200;
>     mcMonster._y = Math.random()*100+50;
>     // Entferne bei Mausklick
>     mcMonster.onPress = function() {
>        this.removeMovieClip();
>     };
>     // Erhöhe Punktzahl nach dem Entfernen der Instanz
>     mcMonster.onUnload = function() {
>        trace("Treffer!");
>        _root.punkte = _root.punkte+10;
>     };
### 12.4.31 onUpdate Das Ereignis onUpdate wird immer dann in einer Live-Vorschau für eine Komponente ausgelöst, wenn sich Parameter der Komponente verändern (siehe »Komponenten«, Seite 426).
| Bemerkung:
| Diese Ereignismethode steht in der Entwicklungsumgebung innerhalb einer Live-Vorschau für Komponenten (Movieclip) seit dem Flash Player 6 zur Verfügung.
| Syntax:
>     movieClipInstanz.onUpdate();
### 12.4.32 onXML Das Ereignis onXML wird immer dann ausgelöst, wenn neue Daten über eine Socket-Verbindung empfangen werden (siehe XMLSocket, Seite 641).
| Bemerkung:
| Diese Ereignismethode steht für XMLSocket-Instanzen seit dem Flash Player 5 zur Verfügung.
| Syntax:
>     xmlSocketInstanz.onXML(daten);
| Parameter:
| daten: Dieser Parameter beinhaltet das empfangene XML-Objekt.
<< zurück | <top> | vor >>
Zum Katalog
ActionScript 1 und 2 bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| Einstieg in ActionScript
| Einstieg in Flash 8
| Flash 8 und PHP
| Flash 8-Tutorials
| Dreamweaver 8
| Webseiten programmieren und gestalten
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 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.

[Galileo Design]
Galileo Press GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de