Klasa: Object
Kompatybilność: ActionScript 1.0, Flash 5+
Rejestruje zdarzenie do wykonywania, kiedy określona właściwość obiektu ActionScript zostaje zmieniona.
Kiedy właściwość się zmienia, zdarzenie jest wywoływane z mojObject
jako zawartością obiektu.
Możesz użyć zwrotu return
w twojej funkcji zwrotnej, aby zmienić wartość obserwowanej właściwości. Wartość zwrócona przez funkcję zwrotną jest załączane do obserwowanej właściwości obiektu. Wybrana wartość do zwrócenie zależy od czego monitorujesz, modyfikujesz lub uniemożliwia zmiany do właściwości:
- Jeśli jedynie obserwująca właściwość, zwraca parametr
newVal
. - Jeśli modyfikujesz wartość właściwości, zwraca twoją własną wartość.
- Jeśli chcesz zapobiec zmiana właściwości, zwraca parametr
oldVal
.
Jeśli funkcja zwrotna, którą zdefiniowałeś nie posiada zwrotu return
, wtedy oglądana właściwość obiektu jest załączana z wartością undefined.
Punkt obserwujące może filtrować (lub wykrywać null) wartości zalączane, przez zwracanie zmodyfikowanej newval
(lub oldval
). Jeśli usuniesz właściwość, dla której słuchacz został zarejestrowany, wtedy ten słuchacz nie zniknie. Jeśli później stworzysz jeszcze raz tą właściwości, to słuchacz dalej będzie działa prawidłowo. Aby usunąć słuchacza użyj metody Object.unwatch
.
Tylko pojedynczy słuchacz może być zarejstrowany z wlaściwością. Jeśli będziesz chciał nadać innego słuchacza na istniejący już, wtedy pierwszy słuchacz jest zastąpiony nowym.
Meotda Object.watch()
zachowuje się podobnie do funkcji Object.watch()
w JavaScript 1.2 i późniejszych. Podstawową różnicą jest parametr daneUzytkownika
, który przekazuje go do zdarzenia oraz używa w zdarzeniu.
Generalnie, wbudowane właściwości ActionScript takie jak _x
, _y
, _width
, oraz _height
, są właściwościami getter/setter [ pobieracza/ustawiacza properties ] nie mogą byc obserwowane przez Object.watch()
.
Listing
mojObject.predkosc = 0;
var predkoscWatcher:Function = function(prop, oldVal, newVal, predkoscLimit) {
if (newVal > predkoscLimit) {
trace ("Jesteś szybki.");
}
else {
trace ("Nie jesteś szybki.");
}
return newVal;
}
mojObject.watch("predkosc", predkoscWatcher, 55);
mojObject.predkosc = 54; // zwróci: Nie jesteś szybki.
mojObject.predkosc = 57; // zwróci: Jesteś szybki.
mojObject.unwatch("predkosc");
mojObject.predkosc = 54;
Ranga: Administrator serwisu Punktów: 0