用于 Adobe® Flash® Platform 的 ActionScript® 3.0 参考
主页  |  隐藏包列表和类列表 |   |   |  新增内容  |  索引  |  附录  |  为什么显示为英语?
过滤条件: 正在从服务器检索数据...
正在从服务器检索数据...
mx.binding.utils 

ChangeWatcher  - AS3 Flex

mx.binding.utils
public class ChangeWatcher
继承ChangeWatcher Inheritance Object

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

ChangeWatcher 类定义能够与可绑定的 Flex 属性一起使用的实用程序方法。您可以使用这些方法定义一个事件处理函数,在每次更新可绑定的属性时都执行此函数。



公共属性
 属性由以下参数定义
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  useWeakReference : Boolean
确定对处理函数的引用是强还是弱。
ChangeWatcher
公共方法
 方法由以下参数定义
  
ChangeWatcher(access:Object, handler:Function, commitOnly:Boolean = false, next:ChangeWatcher = null)
构造函数。
ChangeWatcher
  
canWatch(host:Object, name:String, commitOnly:Boolean = false):Boolean
[静态] 允许您确定宿主是否在此属性上公开数据绑定事件。
ChangeWatcher
  
getEvents(host:Object, name:String, commitOnly:Boolean = false):Object
[静态] 返回宿主对象中可绑定属性的所有绑定事件。
ChangeWatcher
  
检索观察的属性或属性链的当前值,当宿主对象为空时此值为空。
ChangeWatcher
 Inherited
表示对象是否已经定义了指定的属性。
Object
 Inherited
表示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
如果链中的每个观察器都连接了至少一个 change 事件,则返回 true。
ChangeWatcher
 Inherited
表示指定的属性是否存在、是否可枚举。
Object
  
reset(newHost:Object):void
重置此 ChangeWatcher 实例可使用新的宿主对象。
ChangeWatcher
  
设置处理函数。
ChangeWatcher
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
  
从当前宿主中断开此 ChangeWatcher 实例及其处理函数。
ChangeWatcher
 Inherited
返回指定对象的原始值。
Object
  
watch(host:Object, chain:Object, handler:Function, commitOnly:Boolean = false, useWeakReference:Boolean = false):ChangeWatcher
[静态] 创建并启动 ChangeWatcher 实例。
ChangeWatcher
属性详细信息

useWeakReference

属性
public var useWeakReference:Boolean

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

确定对处理函数的引用是强还是弱。强引用(默认值)可防止处理函数被当作垃圾回收。弱引用则没有此作用。

默认值为 false。

构造函数详细信息

ChangeWatcher

()构造函数
public function ChangeWatcher(access:Object, handler:Function, commitOnly:Boolean = false, next:ChangeWatcher = null)

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

构造函数。非公用。只能从 watch() 方法中调用此方法。有关参数用法,请参阅 watch() 方法。

参数
access:Object
 
handler:Function
 
commitOnly:Boolean (default = false)
 
next:ChangeWatcher (default = null)
方法详细信息

canWatch

()方法
public static function canWatch(host:Object, name:String, commitOnly:Boolean = false):Boolean

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

允许您确定宿主是否在此属性上公开数据绑定事件。

注意:canWatch() 方法不支持属性链。watch() 方法支持属性链。

参数

host:Object — 属性的宿主。有关详细信息,请参阅 watch() 方法。
 
name:String — 该属性的名称。有关详细信息,请参阅 watch() 方法。
 
commitOnly:Boolean (default = false) — 如果应仅在提交 change 事件时调用处理函数,则设置为 true。有关详细信息,请参阅 watch() 方法。

返回
Boolean — 如果 hostname 上公开了任何 change 事件,则为 true

getEvents

()方法 
public static function getEvents(host:Object, name:String, commitOnly:Boolean = false):Object

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

返回宿主对象中可绑定属性的所有绑定事件。

参数

host:Object — 属性的宿主。有关详细信息,请参阅 watch() 方法。
 
name:String — 属性或属性链的名称。有关详细信息,请参阅 watch() 方法。
 
commitOnly:Boolean (default = false) — 控制是否在返回值中包含不提交的 change 事件。

返回
Object{ eventName: isCommitting, ... } 形式的对象,包含该属性的所有 change 事件。

getValue

()方法 
public function getValue():Object

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

检索观察的属性或属性链的当前值,当宿主对象为空时此值为空。例如:

      watch(obj, ["a","b","c"], ...).getValue() === obj.a.b.c
      

返回
Object — 观察的属性或属性链的当前值。

isWatching

()方法 
public function isWatching():Boolean

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

如果链中的每个观察器都连接了至少一个 change 事件,则返回 true。请注意,isWatching() 方法随宿主而异,因为不同的宿主可能会根据观察器选择的属性公开不同的 change 事件。

返回
Boolean — 如果链中的每个观察器都连接了至少一个 change 事件,则返回 true

reset

()方法 
public function reset(newHost:Object):void

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

重置此 ChangeWatcher 实例可使用新的宿主对象。您可以调用此方法在其他宿主上重复使用观察器实例。

参数

newHost:Object — 新的宿主属性。有关详细信息,请参阅 watch() 方法。

setHandler

()方法 
public function setHandler(handler:Function):void

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

设置处理函数。

参数

handler:Function — 处理函数。此参数不得为空。

unwatch

()方法 
public function unwatch():void

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

从当前宿主中断开此 ChangeWatcher 实例及其处理函数。您可以使用 reset() 方法重新连接 ChangeWatcher 实例,或在不同宿主对象上观察同一个属性或属性链。

watch

()方法 
public static function watch(host:Object, chain:Object, handler:Function, commitOnly:Boolean = false, useWeakReference:Boolean = false):ChangeWatcher

语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1

创建并启动 ChangeWatcher 实例。一个 ChangeWatcher 实例可观察一个属性或一个属性链。属性链是可从宿主对象访问的一系列属性。例如,表达式 obj.a.b.c 中包含属性链 (a, b, c)。

参数

host:Object — 用于承载要监视的属性或属性链的对象。创建 ChangeWatcher 实例后,您可以使用 reset() 方法更改 host 参数的值。主机维护当 prop 更改时要调用的处理函数列表。
 
chain:Object — 用于指定要监视的属性或属性链的值。合法值包括:
  • 包含宿主对象公用可绑定属性名称的 String。
  • 以下格式的 Object:{ name: 属性名, getter: function(host) { return host[name] } }。此 Object 包含一个公用可绑定属性的名称以及一个充当该属性的 getter 的函数。
  • 包含前两种选项的任意组合的非空 Array。这代表可从宿主访问的可绑定属性链。例如,要观察属性 host.a.b.c,需按以下形式调用此方法:watch(host, ["a","b","c"], ...)

请注意:在 chain 参数中命名的属性必须是公用属性,因为 describeType() 方法抑制非公用属性的所有相关信息,包括 ChangeWatcher 在查找为给定属性公开的 change 事件时扫描的可绑定元数据。但是,在使用上述 { name, getter } 参数形式时提供的 getter 函数可用于将任意计算值与指定的(公用)属性关联。

 
handler:Function — 在修改观察属性(或观察链中任何属性)的值时调用的事件处理函数。如果观察器链中的任何宿主对象调度了在该宿主对象的 [Bindable] 元数据标记中为相应的观察属性指定的事件,则表明已经修改。默认事件名为 propertyChange

由可绑定属性调度的事件对象将传递到此处理函数,不会进行任何修改。默认情况下,Flex 将调度 PropertyChangeEvent 类型的事件对象。然而,在使用 [Bindable] 元数据标记定义可绑定属性时,您可以定义自己的事件类型。

 
commitOnly:Boolean (default = false) — 如果仅在提交 change 事件时需要调用处理函数,则设置为 true;如果无论是否提交 change 事件都调用处理函数,则设置为 false。请注意:属性是否存在不提交的 change 事件由 [NonCommittingChangeEvent(<event-name>)] 元数据标记来指示。通常,这些标记用于指示细化值更改,例如确认前在文本字段中进行的修改。
 
useWeakReference:Boolean (default = false) — (default = false) 确定对处理函数的引用是强还是弱。强引用(默认值)可防止处理函数被当作垃圾回收。弱引用则没有此作用。

返回
ChangeWatcher — 如果已为 chain 参数至少指定了一个属性名称,则返回 ChangeWatcher 实例;否则返回 null。请注意,不能保证返回的监视程序已成功发现 change 事件并将自身附加到 change 事件,因为宿主可能没有在给定的属性或属性链上公开任何事件。您可以使用 isWatching() 方法来确定观察器的状态。

相关 API 元素





[ X ]为什么显示为英语?
《ActionScript 3.0 参考》中的内容以英语显示

《ActionScript 3.0 参考》中的部分内容未翻译成所有语言。当某个语言元素未翻译时,将显示为英语。例如,ga.controls.HelpBox 类未翻译成任何语言。因此在简体中文版的参考中,ga.controls.HelpBox 类显示为英语。