包 | mx.utils |
类 | public dynamic class ObjectProxy |
继承 | ObjectProxy Proxy Object |
实现 | IExternalizable, IPropertyChangeNotifier |
addEventListener()
方法“侦听”对该对象的更改。
属性 | 定义方 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
uid : String 此对象的唯一标识符。 | ObjectProxy |
属性 | 定义方 | ||
---|---|---|---|
dispatcher : EventDispatcher 对该代理的 EventDispatcher 的引用。 | ObjectProxy | ||
notifiers : Object 该代理侦听更改的属性更改通知器的 hashmap,映射的键是属性名称。 | ObjectProxy | ||
object : Object [只读 (read-only)] 被代理的对象。 | ObjectProxy | ||
propertyList : Array 包含代理对象的所有属性名称的列表。 | ObjectProxy | ||
proxyClass : Class 指示当代理复杂属性时创建何种类型的代理。 | ObjectProxy | ||
type : QName 与此对象相关联的限定类型名称。 | ObjectProxy |
方法 | 定义方 | ||
---|---|---|---|
使用指定的对象、ID 和代理深度初始化该代理。 | ObjectProxy | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 注册事件侦听器对象,以便侦听器能够接收事件通知。 | ObjectProxy | ||
将事件调度到事件流中。 | ObjectProxy | ||
检查是否为特定事件类型注册了任何事件侦听器。 | ObjectProxy | ||
指示对象是否已经定义了指定的属性。 | Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
在更新复杂属性时调用。 | ObjectProxy | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
由于 Flex 仅使用 ObjectProxy 来包装匿名对象,因此服务器 flex.messaging.io.ObjectProxy 实例将自身序列化为将作为无格式 ActionScript 对象返回的映射。 | ObjectProxy | ||
删除事件侦听器。 | ObjectProxy | ||
设置循环操作动态属性的可用性。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 对象或其任何始祖为指定事件类型注册了事件侦听器。 | ObjectProxy | ||
由于 Flex 仅对其包装的内部 ActionScript 对象进行序列化,因此服务器 flex.messaging.io.ObjectProxy 将使用该匿名对象的内容填充自身并对用户显示为映射。 | ObjectProxy |
方法 | 定义方 | ||
---|---|---|---|
返回具有指定名称的代理对象的方法值。 | ObjectProxy | ||
删除代理对象上的指定属性并向处理函数发送删除通知。 | ObjectProxy | ||
为子类提供一个位置,以覆盖对复杂属性(该属性需要代理或菊花链用于事件浮升)的管理方式。 | ObjectProxy | ||
返回代理对象的指定属性值。 | ObjectProxy | ||
更新代理对象上的指定属性并向处理函数发送更新通知。 | ObjectProxy | ||
该方法创建一个由代理对象的所有属性名称构成的数组。 | ObjectProxy |
dispatcher | 属性 |
protected var dispatcher:EventDispatcher
对该代理的 EventDispatcher 的引用。
notifiers | 属性 |
protected var notifiers:Object
该代理侦听更改的属性更改通知器的 hashmap,映射的键是属性名称。
object | 属性 |
propertyList | 属性 |
protected var propertyList:Array
包含代理对象的所有属性名称的列表。后代需要通过覆盖 setupPropertyList()
方法填写该列表。
proxyClass | 属性 |
protected var proxyClass:Class
指示当代理复杂属性时创建何种类型的代理。子类应适当地分配该值。
type | 属性 |
type:QName
[读写] 与此对象相关联的限定类型名称。
object_proxy function get type():QName
object_proxy function set type(value:QName):void
uid | 属性 |
uid:String
[读写] 此对象的唯一标识符。
public function get uid():String
public function set uid(value:String):void
ObjectProxy | () | 构造函数 |
public function ObjectProxy(item:Object = null, uid:String = null, proxyDepth:int = -1)
使用指定的对象、ID 和代理深度初始化该代理。
参数item:Object (default = null ) — 要代理的对象。如果未指定项目,将构造并分配一个匿名对象。 | |
uid:String (default = null ) — 包含该对象实例唯一 ID 的字符串。由于每个对象都必须提供标识自身的唯一方式,因此对于遵从 IPropertyChangeNotifier 是必需的。如果未指定值,将分配一个随机 ID。 | |
proxyDepth:int (default = -1 ) — 一个整数,指示属性访问期间应在复杂对象图形中的多少层创建代理。默认值为 -1,表示“代理到无限深度”。 |
import mx.events.PropertyChangeEvent; import mx.utils.ObjectUtil; import mx.utils.ObjectProxy; import mx.utils.StringUtil; var a:Object = { name: "Tyler", age: 5, ssnum: "555-55-5555" }; var p:ObjectProxy = new ObjectProxy(a); p.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, updateHandler); p.name = "Jacey"; p.age = 2; delete p.ssnum; // handler function function updateHandler(event:PropertyChangeEvent):void { trace(StringUtil.substitute("updateHandler('{0}', {1}, {2}, {3}, '{4}')", event.kind, event.property, event.oldValue, event.newValue, event.target.uid)); } // trace output updateHandler('opUpdate', name, Jacey, '698AF8CB-B3D9-21A3-1AFFDGHT89075CD2') updateHandler('opUpdate', age, 2, '698AF8CB-B3D9-21A3-1AFFDGHT89075CD2') updateHandler('opDelete', ssnum, null, '698AF8CB-B3D9-21A3-1AFFDGHT89075CD2')
addEventListener | () | 方法 |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
注册事件侦听器对象,以便侦听器能够接收事件通知。有关详细信息(包括参数的说明),请参阅 flash.events.EventDispatcher 类中的 addEventListener()
。
参数
type:String | |
listener:Function | |
useCapture:Boolean (default = false )
| |
priority:int (default = 0 )
| |
useWeakReference:Boolean (default = false )
|
另请参见
callProperty | () | 方法 |
override flash_proxy function callProperty(name:*, ... rest):*
返回具有指定名称的代理对象的方法值。
参数
name:* — 正被调用的方法的名称。 | |
... rest — 一个数组,指定所调用方法的参数。 |
* — 所调用方法的返回值。 |
deleteProperty | () | 方法 |
override flash_proxy function deleteProperty(name:*):Boolean
删除代理对象上的指定属性并向处理函数发送删除通知。
参数
name:* —
通常是包含属性名称的字符串,也可能是 QName(其中属性名称通过检查 localName 属性获得)。
|
Boolean — 指示是否删除属性的布尔值。 |
dispatchEvent | () | 方法 |
public function dispatchEvent(event:Event):Boolean
将事件调度到事件流中。有关详细信息,请参阅 flash.events.EventDispatcher 类。
参数
event:Event — 调度到事件流中的 Event 对象。如果正在重新调度事件,则会自动创建此事件的一个克隆。在调度了事件后,其 target 属性将无法更改,因此您必须创建此事件的一个新副本以能够重新调度。 |
Boolean —
如果成功调度了事件,则返回 true 。值 false 表示失败或对事件调用了 preventDefault() 。
|
另请参见
getComplexProperty | () | 方法 |
object_proxy function getComplexProperty(name:*, value:*):*
为子类提供一个位置,以覆盖对复杂属性(该属性需要代理或菊花链用于事件浮升)的管理方式。
参数
name:* —
通常是包含属性名称的字符串,也可能是 QName(其中属性名称通过检查 localName 属性获得)。
| |
value:* — 属性值。 |
* —
属性值或 ObjectProxy 实例。
|
getProperty | () | 方法 |
override flash_proxy function getProperty(name:*):*
返回代理对象的指定属性值。
参数
name:* —
通常是包含属性名称的字符串,也可能是 QName(其中属性名称通过检查 localName 属性获得)。
|
* —
属性的值。在某些实例中,该值可能为一个 ObjectProxy 实例。
|
hasEventListener | () | 方法 |
public function hasEventListener(type:String):Boolean
检查是否为特定事件类型注册了任何事件侦听器。这样,您就可以确定 对象在事件流层次结构中的哪个位置改变了对事件类型的处理。有关详细信息,请参阅 flash.events.EventDispatcher 类。
参数
type:String — 事件的类型 |
Boolean —
如果注册了指定类型的侦听器,则返回 true ,否则返回 false 。
|
另请参见
propertyChangeHandler | () | 方法 |
public function propertyChangeHandler(event:PropertyChangeEvent):void
在更新复杂属性时调用。
参数
event:PropertyChangeEvent — 已更改的事件对象。 |
readExternal | () | 方法 |
public function readExternal(input:IDataInput):void
由于 Flex 仅使用 ObjectProxy 来包装匿名对象,因此服务器 flex.messaging.io.ObjectProxy 实例将自身序列化为将作为无格式 ActionScript 对象返回的映射。然后,可以将 object_proxy 对象属性设置为该值。
参数
input:IDataInput — 从中对 ObjectProxy 进行反序列化的源对象。 |
removeEventListener | () | 方法 |
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
删除事件侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。有关详细信息,请参阅 flash.events.EventDispatcher 类。
参数
type:String — 事件的类型。 | |
listener:Function — 要删除的侦听器对象。 | |
useCapture:Boolean (default = false ) —
指出是否为捕获阶段或目标阶段和冒泡阶段注册了侦听器。如果对捕获阶段以及目标和冒泡阶段都注册了侦听器,则需要调用 removeEventListener() 两次才能删除这两个侦听器,一次调用时将 useCapture() 设置为 true ,另一次调用时将 useCapture() 设置为 false 。
|
另请参见
setProperty | () | 方法 |
override flash_proxy function setProperty(name:*, value:*):void
更新代理对象上的指定属性并向处理函数发送更新通知。
参数
name:* — 包含属性名称的对象,该属性应在代理对象上更新。 | |
value:* — 代理对象上应设置的值。 |
setupPropertyList | () | 方法 |
protected function setupPropertyList():void
该方法创建一个由代理对象的所有属性名称构成的数组。如果后代希望向此列表添加更多属性,则必须覆盖该方法。在对 propertyList
属性进行任何更改之前,请确保先调用 super.setupPropertyList
。
willTrigger | () | 方法 |
public function willTrigger(type:String):Boolean
检查是否用此 对象或其任何始祖为指定事件类型注册了事件侦听器。将指定类型的事件调度给此 对象或其任一后代时,如果在事件流的任何阶段触发了事件侦听器,则此方法返回 true
。有关详细信息,请参阅 flash.events.EventDispatcher 类。
参数
type:String — 事件的类型。 |
Boolean —
如果将触发指定类型的侦听器,则返回 true ,否则返回 false 。
|
另请参见
writeExternal | () | 方法 |
public function writeExternal(output:IDataOutput):void
由于 Flex 仅对其包装的内部 ActionScript 对象进行序列化,因此服务器 flex.messaging.io.ObjectProxy 将使用该匿名对象的内容填充自身并对用户显示为映射。
参数
output:IDataOutput — 从中对 ObjectProxy 进行反序列化的源对象。 |