watch this property, please

Λύσεις προβλημάτων για το δημοφιλές πρόγραμμα κατασκευής παρουσιάσεων στο διαδίκτυο.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
spookyb52
Δημοσιεύσεις: 1891
Εγγραφή: 23 Ιαν 2002 01:00
Τοποθεσία: Lost in the mansion
Επικοινωνία:

watch this property, please

Δημοσίευση από spookyb52 » 28 Ιούλ 2004 11:57

Θα είμαι σύντομος..

Η μέθοδος watch του αντικειμένου... object βοηθάει στην παρακολούθηση των ιδιοτήτων του αντικειμένου

πχ άν είχαμε το παρακάτω αντικείμενο mouse με την ιδιότητα microsoft και την boolean τιμή true

mouse.microsoft = true

θα μπορούσαμε να προσθέσουμε μιά μέθοδο watch που θα καλούσε μια συνάρτηση όταν η τιμή αυτή θα άλλαζε

Η σύνταξη θα ήταν

mouse.watch("microsoft", oops)

και άν η συνάρτηση oops ήταν η παρακάτω
//---------
function oops() {
trace("value changed");
}


τότε όταν άλλαζε η τιμή της ιδιότητας microsoft σε false πχ τότε θα επέστρεφε στο output παράθυρο value changed

Το να σταματήσουμε την παρακολούθηση μιας ιδιότητας που παρακολουθείτε με την watch είναι αρκετά απλό

πχ στο παραπάνω παράδειγμα mouse.unwatch("microsoft")

Άλλο ένα παράδειγμα από κάτω

Κώδικας: Επιλογή όλων

spooky = {age:22};
spooky.watch("age", vals);
function vals(id, oldval, newval) {
	trace("spooky property :  "+id);
	trace("Old value :  "+oldval);
	trace("New value :  "+newval);
	spooky.unwatch("age");
}
onMouseDown = function () {
	spooky.age += 1;
};

spooky = {age:22};
δημιουργούμε το αντικείμενο spooky με την ιδιότητα age και τιμή αυτής 22


spooky.watch("age", vals);
Προσθέτουμε παρακολούθηση στην ιδιότητα age και όταν αλλάξει καλείτε η συνάρτηση vals


function vals(id, oldval, newval) {
...........
...........
...........
...........
}

Η συνάρτηση vals έχει τρείς παράμετρους οι οποίες είναι διαθέσιμες από το flash
id : Το όνομα της ιδιότητας που παρακολουθείτε με την watch
olval : Η αρχική τιμή της ιδιότητας
newval : Η νέα τιμή της ιδιότητας


trace("spooky property : "+id);
trace("Old value : "+oldval);
trace("New value : "+newval);
spooky.unwatch("age");

Μέσα στην συνάρτηση έχουμε τις παραπάνω ενέργειες

Αρχικά προσθέτουμε τρείς trace εντολές οι οποίες εμφανίζουν στο output παράθυρο τις τιμές των παραμέτρων της συνάρτησης vals
και στο τέλος αφαιρούμε την παρακολούθηση από την ιδιότητα age του αντικειμένου spooky


onMouseDown = function () {
spooky.age += 1;
};

Όταν πατηθεί το Mouse η τιμή της ιδιότητας age θα αυξηθεί κατά 1 και αυτό θα ενεργοποιήσει την μέθοδο watch και θα κληθεί η function vals να εκτελέσει τις προκαθορισμένες ενέργειες

Βάλτε τον κώδικα σε ένα keyframe και δοκιμάστε το


προσοχή θέλουν τα παρακάτω

Με την watch δέν μπορούμε να παρακολουθούμε ιδιότητες όπως _x, _y, _visible κτλ

Όταν αναφερόμαστε σε ιδιότητες αντικειμένων δέν αναφερόμαστε μόνο στα αντικείμενα που δημιουργούμε με κώδικα αλλά και οτιδήποτε άλλο συμπεριφέρεται σάν αντικείμενο και έχει ιδιότητες. πχ movie clip, προσαρμοσμένες μεταβλητές κτλ

Η watch δέν μπορεί να χρησιμοποιηθεί για την παρακολούθηση ιδιοτήτων που αλλάχθηκαν
Life is like a fast car on an icy road. Brakes don't work, yes I know it, but I step on the gas
Garage punk | Rockabilly | Rock 'n' Roll | Stoner

Απάντηση

Επιστροφή στο “Flash γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες