| 谈谈Flash的一些语法基础和系统核心 2.9 Object.watch() 方法:监视变量 |
|
谈谈Flash的一些语法基础和系统核心 2.9 Object.watch() 方法:监视变量 |
| 作者:佚名 来源:闪吧 作者: ox_thedarkness 更新:2007-1-13 20:47:28 错误报告 我要投稿 |
参与本文讨论:闪吧本文讨论帖 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
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |