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
事实上,没有什么要比发现、培养、呵护、调整自己的心智的力量更重要的事情了.........
查看全文
相关阅读:
计算机科学引论笔记
Bootstrap实战 瀑布流布局
前端性能和加载体验优化实践(附:PWA、离线包、内存优化、预渲染)
Promise + Async&Await + Array.reduce + 函数递归 解决网络/接口请求的依次/排队不间断间隔访问
webfunny前端监控新产品发布:点位系统上线,简单6步操作
Java 全栈知识体系(2021 PDF 版本)
Java 面试题及答案整理(2021最新版)持续更新中~~~
python相关常见安装问题
获取某一个数的2进制位数以及bitmask
centos7下利用qemu搭建arm模拟器
原文地址:https://www.cnblogs.com/appleseed/p/1381099.html
最新文章
nodejs制作一个文档同步工具,自动同步到gitee中
科三终于过了。。。总结整理。。。
reacttransitiongroup配合css透明度变化,实现页面顺滑跳转。
前端 全屏雪花飘落效果
算是我的2021年的年终总结吧!
类似时钟的加载中动画
js代码,自动分析m1907的数据,并自动在c站投稿页填充投稿信息
前端笔记(flex弹性布局的整体总结)
解决git报警告 TLS certificate verification has been disabled!
单元测试在Unity中的应用
热门文章
EmmyLua 注解功能
基于树结构实现的Unity红点管理器
DOTween实现缓动变值动效
GitHub Desktop 推送报错
OpenXml SDK学习笔记(1):Word的基本结构
OpenXml SDK学习笔记(5):最后的调试
OpenXml SDK学习笔记(4):设置文件级别的样式
OpenXml SDK学习笔记
OpenXml SDK学习笔记(3):设置样式
OpenXml SDK学习笔记(2):新建段落和文本
Copyright © 2011-2022 走看看