2.9 Object.watch() 方法:监视变量
Object有一个 watch()方法,
官方描述请在help 里面查找: Object.watch myObject.watch( prop:string, callback:function [ , userData ] ) 你可以用它来监视一个变量prop。那个变量的值的每次修改都不会是直接修改,而是先调用callback函数。
callback 函数的接口是: callbackfunc( id, oldval, newval [,userData] );
其返回值复写到监视的变量中以完成操作。如果没有写返回值,那么对变量的任何修改将导致变量的值变成 undefined。 userData用于传递一些静态的值给callback函数的对应位置。注意,userData传入的是值,而不是变量。下面是一个完整的实现: function myWatchFunc(id, oldval, newval, userdata){
var str = ">Try to change: "+ this +"."+id;;
str += " from: " + oldval + " to: " + newval;
trace(str);
if( userdata == "lock") {
trace(">Change refused.");
return oldval;
}else{
return newval;
}
} x = 2;
y = "testStr";
//开始测试: watch("x",myWatchFunc,"lock");
watch("y",myWatchFunc);
watch("1",myWatchFunc);
x = 10;
trace(x);
y = "ok";
trace(y);
this[1] = 70;
trace( this[1]);
结果:
>Try to change: _level0.x from: 2 to: 10
>Change refused.
2
>Try to change: _level0.y from: testStr to: ok
ok
>Try to change: _level0.1 from: undefined to: 70
70
上一篇:谈谈Flash的一些语法基础和系统核心 2.8 对函数变量的引用
下一篇:条件循环的使用
|