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. |
|
|
|