Object.watch()
677
The
Object.watch()
method behaves similarly to the
Object.watch()
function in JavaScript
1.2 and later. The primary difference is the
userData
parameter, which is a Flash addition to
Object.watch()
that Netscape Navigator does not support. You can pass the
userData
parameter to the event handler and use it in the event handler.
The
Object.watch()
method cannot watch getter/setter properties. Getter/setter properties
operate through
lazy evaluation
— the value of the property is not determined until the property is
actually queried. Lazy evaluation is often efficient because the property is not constantly updated;
it is, rather, evaluated when needed. However,
Object.watch()
needs to evaluate a property to
determine whether to invoke the
callback
function. To work with a getter/setter property,
Object.watch()
needs to evaluate the property constantly, which is inefficient.
Generally, predefined ActionScript properties, such as
_x
,
_y
,
_width
, and
_height
, are getter/
setter properties and cannot be watched with
Object.watch()
.
Example
The following example uses
watch()
to check whether the
speed
property exceeds the speed
limit:
// Create a new object
var myObject:Object = new Object();
// Add a property that tracks speed
myObject.speed = 0;
// Write the callback function to be executed if the speed property changes
var speedWatcher:Function = function(prop, oldVal, newVal, speedLimit) {
// Check whether speed is above the limit
if (newVal > speedLimit) {
trace ("You are speeding.");
}
else {
trace ("You are not speeding.");
}
// Return the value of newVal.
return newVal;
}
// Use watch() to register the event handler, passing as parameters:
// - the name of the property to watch: "speed"
// - a reference to the callback function speedWatcher
// - the speedLimit of 55 as the userData parameter
myObject.watch("speed", speedWatcher, 55);
// set the speed property to 54, then to 57
myObject.speed = 54; // output: You are not speeding
myObject.speed = 57; // output: You are speeding
// unwatch the object
myObject.unwatch("speed");
myObject.speed = 54; // there should be no output
See also
Object.addProperty()
,
Object.unwatch()
Summary of Contents for FLASH MX 2004-ACTIONSCRIPT LANGUAGE
Page 1: ...ActionScript Language Reference...
Page 20: ...20 Contents...
Page 24: ...24 Chapter 1 Introduction...
Page 145: ...Button onKeyDown 145 See also Button onKeyUp...
Page 186: ...186 Chapter 2 ActionScript Language Reference See also Camera onActivity Camera setMotionLevel...
Page 202: ...202 Chapter 2 ActionScript Language Reference See also break default strict equality switch...
Page 282: ...282 Chapter 2 ActionScript Language Reference See also break continue while...
Page 383: ...LoadVars addRequestHeader 383 See also XML addRequestHeader...
Page 388: ...388 Chapter 2 my_lv load place a valid URL pointing to a text file here...
Page 463: ...Microphone setRate 463 See also Microphone rate...
Page 469: ...Microphone silenceLevel 469 See also Microphone gain Microphone setSilenceLevel...
Page 480: ...480 Chapter 2 ActionScript Language Reference See also Mouse addListener...
Page 529: ...MovieClip globalToLocal 529 See also MovieClip getBounds MovieClip localToGlobal...
Page 612: ...612 Chapter 2 ActionScript Language Reference See also MovieClipLoader onLoadStart...
Page 623: ...NetConnection class 623 See also NetStream class Video attachVideo...
Page 649: ...Number 649 See also NaN Number class...
Page 679: ...on 679 on release trace X this _x trace Y this _y stopDrag See also onClipEvent...
Page 683: ...onUpdate 683 buttonLabel textColor my_mc labelColor...
Page 788: ...788 Chapter 2 ActionScript Language Reference See also private public...
Page 1001: ...Video height 1001 my_mc _height my_mc my_video height See also MovieClip _height Video width...
Page 1022: ...1022 Chapter 2 ActionScript Language Reference See also XML createElement...
Page 1057: ...XML xmlDecl 1057 See also XML docTypeDecl XML toString...
Page 1070: ...1070 Chapter 2 ActionScript Language Reference...