eui.Watcher
包 eui
类 public class Watcher
Watcher 类能够监视可绑定属性的改变,您可以定义一个事件处理函数作为 Watcher 的回调方法,在每次可绑定属性的值改变时都执行此函数。
公共方法
方法 |
---|
Watcher(property:string,handler:(value:any)=>void,thisObject:any,next:eui.Watcher) 构造函数,非公开 |
getValue():any 检索观察的属性或属性链的当前值,当宿主对象为空时此值为空 |
reset(newHost:egret.IEventDispatcher):void 重置此 Watcher 实例使用新的宿主对象 |
setHandler(handler:(value:any)=>void,thisObject:any):void 设置处理函数 |
unwatch():void 从当前宿主中断开此 Watcher 实例及其处理函数 |
watch(host:any,chain:string[],handler:(value:any)=>void,thisObject:any):eui.Watcher [静态]创建并启动 Watcher 实例 |
方法详细信息
Watcher()
public Watcher(property:string,handler:(value:any)=>void,thisObject:any,next:eui.Watcher)
构造函数,非公开。只能从 watch() 方法中调用此方法。有关参数用法,请参阅 watch() 方法。
- 支持版本:eui 1.0
- 运行平台:Web,Native
- 参数
- property:string
- handler:(value:any)=>void
- thisObject:any
- next:eui.Watcher
getValue()
public getValue():any
检索观察的属性或属性链的当前值,当宿主对象为空时此值为空。
- 支持版本:eui 1.0
- 运行平台:Web,Native
//Example:
watch(obj, ["a","b","c"], ...).getValue() === obj.a.b.c
reset()
public reset(newHost:egret.IEventDispatcher):void
重置此 Watcher 实例使用新的宿主对象。您可以通过该方法实现一个Watcher实例用于不同的宿主。
- 支持版本:eui 1.0
- 运行平台:Web,Native
- 参数
- newHost:egret.IEventDispatcher
setHandler()
public setHandler(handler:(value:any)=>void,thisObject:any):void
设置处理函数。
unwatch()
public unwatch():void
从当前宿主中断开此 Watcher 实例及其处理函数。
- 支持版本:eui 1.0
- 运行平台:Web,Native
watch()
public watch(host:any,chain:string[],handler:(value:any)=>void,thisObject:any):eui.Watcher
创建并启动 Watcher 实例。注意:Watcher 只能监视 host 为 egret.IEventDispatcher 对象的属性改变。若属性链中某个属性所对应的实例不是 egret.IEventDispatcher,则属性链中在它之后的属性改变将无法检测到。
支持版本:eui 1.0
运行平台:Web,Native
参数
返回:如果已为 chain 参数至少指定了一个属性名称,则返回 Watcher 实例;否则返回 null。
示例
**
* 以下示例使用 WatcherExample 类来说明如何监视绑定属性的改变
*/
class WatcherExample extends egret.Sprite {
public porp: number = 789;
constructor() {
super();
eui.Watcher.watch(this, ["porp"], this.watcherHander, this);
this.porp = 666;
this.porp = 123;
}
public watcherHander(value: any): void {
egret.log("watcherHander:" + " " + value + " " + this.porp);
}
}