包 | mx.utils |
类 | public dynamic class ObjectProxy |
继承 | ObjectProxy Proxy |
实现 | IExternalizable, IPropertyChangeNotifier |
子类 | DataItem, ManagedObjectProxy |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
addEventListener()
方法“侦听”对此对象的更改。
属性 | 由以下参数定义 | ||
---|---|---|---|
dispatcher : EventDispatcher
对该代理的 EventDispatcher 的引用。 | ObjectProxy | ||
notifiers : Object
该代理侦听更改的属性更改通知器的 hashmap,映射的键是属性名称。 | ObjectProxy | ||
object : Object [只读]
被代理的对象。 | 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 | ||
在更新复杂属性时调用。 | ObjectProxy | ||
由于 Flex 仅使用 ObjectProxy 来包装匿名对象,因此服务器 flex.messaging.io.ObjectProxy 实例将自身序列化为将作为无格式 ActionScript 对象返回的映射。 | ObjectProxy | ||
删除事件侦听器。 | ObjectProxy | ||
检查是否用此对象或其任何祖代为指定事件类型注册了事件侦听器。 | ObjectProxy | ||
由于 Flex 仅对其包装的内部 ActionScript 对象进行序列化,因此服务器 flex.messaging.io.ObjectProxy 将使用该匿名对象的内容填充自身并对用户显示为映射。 | ObjectProxy |
方法 | 由以下参数定义 | ||
---|---|---|---|
[覆盖]
返回具有指定名称的代理对象的方法值。 | ObjectProxy | ||
[覆盖]
删除代理对象上的指定属性并向处理函数发送删除通知。 | ObjectProxy | ||
为子类提供一个位置,以覆盖对复杂属性(该属性需要代理或菊花链用于事件浮升)的管理方式。 | ObjectProxy | ||
[覆盖]
返回代理对象的指定属性值。 | ObjectProxy | ||
[覆盖]
更新代理对象上的指定属性并向处理函数发送更新通知。 | ObjectProxy | ||
该方法创建一个由代理对象的所有属性名称构成的数组。 | ObjectProxy |
dispatcher | 属性 |
protected var dispatcher:EventDispatcher
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
对该代理的 EventDispatcher 的引用。
notifiers | 属性 |
protected var notifiers:Object
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
该代理侦听更改的属性更改通知器的 hashmap,映射的键是属性名称。
object | 属性 |
object:Object
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
被代理的对象。
实现
object_proxy function get object():Object
propertyList | 属性 |
protected var propertyList:Array
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
包含代理对象的所有属性名称的列表。后代需要通过覆盖 setupPropertyList()
方法填写该列表。
proxyClass | 属性 |
protected var proxyClass:Class
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指示当代理复杂属性时创建何种类型的代理。子类应适当地分配该值。
type | 属性 |
type:QName
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
与此对象相关联的限定类型名称。
实现
object_proxy function get type():QName
object_proxy function set type(value:QName):void
uid | 属性 |
ObjectProxy | () | 构造函数 |
public function ObjectProxy(item:Object = null, uid:String = null, proxyDepth:int = -1)
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.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
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
注册事件侦听器对象,以便侦听器能够接收事件通知。有关详细信息(包括参数的说明),请参阅 flash.events.EventDispatcher 类中的 addEventListener()
。
参数
type:String — 事件的类型。
| |
listener:Function — 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数并且不能返回任何结果。
| |
useCapture:Boolean (default = false ) — 确定侦听器是运行于捕获阶段还是运行于目标和冒泡阶段。如果将 useCapture 设置为 true ,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapture 为 false ,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true ,一次将 useCapture 设置为 false 。
| |
priority:int (default = 0 ) — 事件侦听器的优先级。
| |
useWeakReference:Boolean (default = false ) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。
|
相关 API 元素
callProperty | () | 方法 |
deleteProperty | () | 方法 |
override flash_proxy function deleteProperty(name:*):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
删除代理对象上的指定属性并向处理函数发送删除通知。
参数
name:* — 通常是包含属性名称的字符串,也可能是 QName(其中属性名称通过检查 localName 属性获得)。
|
Boolean — 指示是否删除属性的布尔值。
|
dispatchEvent | () | 方法 |
public function dispatchEvent(event:Event):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
将事件调度到事件流中。有关详细信息,请参阅 flash.events.EventDispatcher 类。
参数
event:Event — 调度到事件流中的 Event 对象。如果正在重新调度事件,则会自动创建此事件的一个克隆。 在调度了事件后,其 target 属性将无法更改,因此您必须创建此事件的一个新副本以能够重新调度。
|
Boolean — 如果成功调度了事件,则返回 true 。值 false 表示失败或对事件调用了 preventDefault() 。
|
相关 API 元素
getComplexProperty | () | 方法 |
getProperty | () | 方法 |
override flash_proxy function getProperty(name:*):*
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
返回代理对象的指定属性值。
参数
name:* — 通常是包含属性名称的字符串,也可能是 QName(其中属性名称通过检查 localName 属性获得)。
|
* — 属性的值。在某些实例中,该值可能为一个 ObjectProxy 实例。
|
hasEventListener | () | 方法 |
propertyChangeHandler | () | 方法 |
public function propertyChangeHandler(event:PropertyChangeEvent):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
在更新复杂属性时调用。
参数
event:PropertyChangeEvent — 已更改的事件对象。
|
readExternal | () | 方法 |
public function readExternal(input:IDataInput):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
由于 Flex 仅使用 ObjectProxy 来包装匿名对象,因此服务器 flex.messaging.io.ObjectProxy 实例将自身序列化为将作为无格式 ActionScript 对象返回的映射。然后,可以将 object_proxy 对象属性设置为该值。
参数
input:IDataInput — 从中对 ObjectProxy 进行反序列化的源对象。
|
removeEventListener | () | 方法 |
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
删除事件侦听器。如果没有向 EventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。有关详细信息,请参阅 flash.events.EventDispatcher 类。
参数
type:String — 事件的类型。
| |
listener:Function — 要删除的侦听器对象。
| |
useCapture:Boolean (default = false ) — 指出是为捕获阶段还是为目标和冒泡阶段注册了侦听器。如果对捕获阶段以及目标和冒泡阶段都注册了侦听器,则需要调用 removeEventListener() 两次才能删除这两个侦听器,一次调用时将 useCapture() 设置为 true ,另一次调用时将 useCapture() 设置为 false 。
|
相关 API 元素
setProperty | () | 方法 |
setupPropertyList | () | 方法 |
protected function setupPropertyList():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
该方法创建一个由代理对象的所有属性名称构成的数组。如果后代希望向此列表添加更多属性,则必须覆盖该方法。在对 propertyList
属性进行任何更改之前,请确保先调用 super.setupPropertyList
。
willTrigger | () | 方法 |
public function willTrigger(type:String):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
检查是否用此对象或其任何祖代为指定事件类型注册了事件侦听器。对此对象或其任一后代调度指定类型的事件时,如果在事件流的任何阶段触发了事件侦听器,则此方法将返回 true
。有关详细信息,请参阅 flash.events.EventDispatcher 类。
参数
type:String — 事件的类型。
|
Boolean — 如果将触发指定类型的侦听器,则返回 true ,否则返回 false 。
|
相关 API 元素
writeExternal | () | 方法 |
public function writeExternal(output:IDataOutput):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
由于 Flex 仅对其包装的内部 ActionScript 对象进行序列化,因此服务器 flex.messaging.io.ObjectProxy 将使用该匿名对象的内容填充自身并对用户显示为映射。
参数
output:IDataOutput — 从中对 ObjectProxy 进行反序列化的源对象。
|
Tue Jun 12 2018, 11:04 AM Z