Flash Listener Objekt

 
Ein Tipp von: http://www.pastorpixel.de

 

 

Mit dem Listener Objekt kann man Ereignisse überwachen um dann bestimmte Funktionen auszuführen. Außerdem kann man die Listener Objekte auch wieder löschen. Praktische Beispiele findet man in meinem Tipp onSetFocus und Mausrad. Im Gegensatz zu anderen Ereignisprozedurmethoden können Sie mit dem Listener-Broadcaster-Modell für Ereignisse verschiedene Codeabschnitte konfliktfrei auf das gleiche Ereignis warten lassen. Mit den folgenden ActionScript-Klassen werden Ereignisse übertragen: Key, Mouse, MovieClipLoader, Selection, Stage und TextField. Durch Ereignis-Listener können so genannte Listener-Objekte Ereignisse empfangen, die von anderen Objekten namens Broadcaster-Objekten gesendet wurden. Das Ganze geschieht in 3 Schritten.
1.) man erstellt ein neues Listener Objekt.
2.) man weist diesem Objekt eine Funktion zu.
3.) man registriert das Objekt bei eine Broadcaster Object (key, Mouse, ...etc.)

var listenerObject:Object = new Object();
listenerObject.eventName = function(eventObj:Object) {
// Ihren Code hier einfügen
};
broadcasterObject.addListener(listenerObject);

meinListener = new Object();
meinListener.onMouseMove = function() {
_root.meinMC._x = 20;
}
Mouse.addListener(meinListener);
_root.meinMC.onKeyUp = function() {
_root.meinMC._alpha = 50;
};
Key.addListener(_root.meinMC);
Im ersten Beispiel wurde ein neues Listener Objekt erstellt. Das Objekt kann aber auch eine Movieclipinstanz, eine Schaltflächeninstanz oder eine Instanz einer beliebigen ActionScript-Klasse sein. Im zweiten Beispiel ist es die Movieclipinstanz "meinMC". Dann wird die Funktion zugwiesen und das Listener Objekt beim Broadcaster Objekt registriert.
Im Aktionenbedienfeld unter Objekte findet man in den Unterordnern namens "Listener" die Ereignisprozeduren, die für das jeweilige Broadcaster Objekt möglich sind. In den Ordnern "Methoden" befindet sich die Aktion "addListener".
on (release) {
Key.removeListener(_root.meinMC);
}
broadcasterObject.removeListener(listenerObject);
   
meinMC.onKeyDown = function() {
this._xscale=this._yscale=400;;
this._alpha = 50;
};
_root.meinMC.onKeyUp = function() {
this._alpha = 100;
this._xscale=this._yscale=100;;
};
Key.addListener(_root.meinMC);
Wie man an diesem Beispiel sieht, kann man auch mehrere Ereignisse zuweisen.
Bei der Verwendung von Komponenten nutzen Sie eine etwas andere Syntax für Ereignis-Listener. Siehe dazu die Flash Dokumentation und meinen Tipp Komponente Flash 8