zoukankan
html css js c++ java
監聽一個變量的值變化
Code
package system
{
import flash.utils.Proxy;
import flash.utils.flash_proxy;
public
dynamic
class
WO extends Proxy
{;
private
var _obj:
*
;
private
var _watchHashTable:Object;
/**/
/*
*Constructor WO
*
* @param obj:* 对象
*
*
*/
public
function WO(obj:
*
)
{
_watchHashTable
=
{}
;
_obj
=
obj;
}
/**/
/*
*Public function watch
*
* @param prop:String 属性
* @param callBackFunc:Function 回调函数
* @param arg:*=null 可选参数
*
*
*/
public
function watch(prop:String,callBackFunc:Function,arg:
*=
null
):
void
{
_watchHashTable[prop]
=
{}
;
_watchHashTable[prop].prop
=
prop;
_watchHashTable[prop].oldV
=
flash_proxy::getProperty(prop);
_watchHashTable[prop].newV
=
null
;
_watchHashTable[prop].callBackFunc
=
callBackFunc;
_watchHashTable[prop].arg
=
arg;
}
override
flash_proxy function callProperty(methodName:
*
,
args):
*
{
return
_obj[methodName].apply(_obj,args);
}
override
flash_proxy function getProperty(name:
*
):
*
{
//
trace("getProperty");
return
_obj[name];
}
override
flash_proxy function setProperty(name:
*
, value:
*
):
void
{
//
trace("setProperty");
if
(_watchHashTable[name]
!=
undefined
&&
value
!=
_watchHashTable[name].oldV)
{
_watchHashTable[name].newV
=
value;
_watchHashTable[name].oldV
=
_watchHashTable[name].callBackFunc.apply(
null
,[_watchHashTable[name].prop,_watchHashTable[name].oldV,_watchHashTable[name].newV,_watchHashTable[name].arg]);
}
_obj[name]
=
value;
}
}
}
例子:
Code
import com.ycccc.utils.WO;
var mc:MovieClip
=
new
MovieClip();
var __mc:WO
=
new
WO(mc);
var arg:String
=
"
1234
"
;
__mc.watch(
"
x
"
,watchFunc);
function watchFunc(p,o,n,arg)
{
trace(arguments);
return
n;
}
__mc.x
=
99
;
__mc.x
=
100
;
__mc.watch(
"
y
"
,watchFunc,arg);
__mc.y
=
101
;
__mc.y
=
102
;
__mc.watch(
"
z
"
,watchFunc,arg);
__mc.z
=
88
__mc.z
=
99
事实上,没有什么要比发现、培养、呵护、调整自己的心智的力量更重要的事情了.........
查看全文
相关阅读:
linux网卡eth1如何修改为eth0
rpm方式安装MySQL5.1.73
quartz demo01
chrome 搜索 jsonView
判断是否十六进制格式字符串
ip and port check 正则
hadoop 遇到java.net.ConnectException: to 0.0.0.0:10020 failed on connection
hadoop2.4.1 伪分布
R 包
使用pt-heartbeat检测主从复制延迟
原文地址:https://www.cnblogs.com/appleseed/p/1381099.html
最新文章
linux shell中curl 发送post请求json格式问题
python 测试框架之---testtools
jenkins中windows节点设置开机自启动slave-agent
selenium中javascript调试
python web自动化测试中失败截图方法汇总
python中的null值
自动化测试中,生成资源时随机名字两种方法
使用curl进行s3服务操作
在eclipse pydev中使用PEP8来规范python代码
设计模式 ---- 观察者模式
热门文章
QT QWidget 关闭的流程
QThread 采用moveToThread方式实现多线程。 线程本身、connect关联的槽函数、connect关联的lambda对象分别运行在哪个线程中。
Qt QThread两种方式的使用:1-继承QThread重写run函数; 2- 继承QObject并moveToThread && 消息和槽在线程和依附线程间的传递
QAbstractItemModel详细剖析 …&&... QAbstractTableModel
QHBoxLayout 、QFormLayout 遍历子部件,查找QLineEdit控件
QFileInfo().created() 警告 created is deprecated 怎么改?
Qt :编译警告 LNK4042对象被多次指定,已忽略多余的指定 ....segmentLayout.obj
Qt 信号和槽异常: QObject::connect: No Such slot baseClassName::subClassfunction() in ......
请教:if 判断、 case选择、Map映射 , 三种方式查找某个目标,那种方案效率最高,那种方案时间复杂度最低
install scala & spark env
Copyright © 2011-2022 走看看