388
Chapter 6: ActionScript Core Classes
Description
Method; registers an event handler to be invoked when a specified property of an ActionScript
object changes. When the property changes, the event handler is invoked with
myObject
as the
containing object.
Your can use the
return
statement in your
callback
method definition to affect the value of the
property you are watching. The value returned by your
callback
method is assigned to the
watched object property. The value you choose to return depends on whether you wish to
monitor, modify or prevent changes to the property:
•
If you are merely monitoring the property, return the
newVal
parameter.
•
If you are modifying the value of the property, return your own value.
•
If you want to prevent changes to the property, return the
oldVal
parameter.
If the
callback
method you define does not have a
return
statement, then the watched object
property is assigned a value of
undefined.
A watchpoint can filter (or nullify) the value assignment, by returning a modified
newval
(or
oldval
). If you delete a property for which a watchpoint has been set, that watchpoint does not
disappear. If you later recreate the property, the watchpoint is still in effect. To remove a
watchpoint, use the
Object.unwatch
method.
Only a single watchpoint can be registered on a property. Subsequent calls to
Object.watch()
on the same property replace the original watchpoint.
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
Summary of Contents for FLEX
Page 1: ...Flex ActionScript Language Reference ...
Page 8: ......
Page 66: ...66 Chapter 2 Creating Custom Classes with ActionScript 2 0 ...
Page 76: ......
Page 133: ...break 133 See also for for in do while while switch case continue throw try catch finally ...
Page 135: ...case 135 See also break default strict equality switch ...
Page 146: ...146 Chapter 5 ActionScript Core Language Elements See also break continue while ...
Page 808: ...808 Chapter 7 ActionScript for Flash ...
Page 810: ...810 Appendix A Deprecated Flash 4 operators ...
Page 815: ...Other keys 815 Num Lock 144 186 187 _ 189 191 192 219 220 221 222 Key Key code ...
Page 816: ...816 Appendix B Keyboard Keys and Key Code Values ...
Page 822: ...822 Index ...