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

ObjectProxy  - AS3 Flex

mx.utils
public dynamic class ObjectProxy
继承ObjectProxy Inheritance Proxy
实现 IExternalizable, IPropertyChangeNotifier
子类 DataItem, ManagedObjectProxy

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

该类提供跟踪对此代理管理的项目进行的更改的功能。任何数量的对象都可使用 addEventListener() 方法“侦听”对此对象的更改。



公共属性
 属性由以下参数定义
  uid : String
此对象的唯一标识符。
ObjectProxy
受保护的属性
 属性由以下参数定义
  dispatcher : EventDispatcher
对该代理的 EventDispatcher 的引用。
ObjectProxy
  notifiers : Object
该代理侦听更改的属性更改通知器的 hashmap,映射的键是属性名称。
ObjectProxy
  object : Object
[只读] 被代理的对象。
ObjectProxy
  propertyList : Array
包含代理对象的所有属性名称的列表。
ObjectProxy
  proxyClass : Class
指示当代理复杂属性时创建何种类型的代理。
ObjectProxy
  type : QName
与此对象相关联的限定类型名称。
ObjectProxy
公共方法
 方法由以下参数定义
  
ObjectProxy(item:Object = null, uid:String = null, proxyDepth:int = -1)
使用指定的对象、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
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
删除事件侦听器。
ObjectProxy
  
检查是否用此对象或其任何祖代为指定事件类型注册了事件侦听器。
ObjectProxy
  
由于 Flex 仅对其包装的内部 ActionScript 对象进行序列化,因此服务器 flex.messaging.io.ObjectProxy 将使用该匿名对象的内容填充自身并对用户显示为映射。
ObjectProxy
受保护的方法
 方法由以下参数定义
  
callProperty(name:*, ... rest):*
[覆盖] 返回具有指定名称的代理对象的方法值。
ObjectProxy
  
[覆盖] 删除代理对象上的指定属性并向处理函数发送删除通知。
ObjectProxy
  
getComplexProperty(name:*, value:*):*
为子类提供一个位置,以覆盖对复杂属性(该属性需要代理或菊花链用于事件浮升)的管理方式。
ObjectProxy
  
[覆盖] 返回代理对象的指定属性值。
ObjectProxy
  
setProperty(name:*, value:*):void
[覆盖] 更新代理对象上的指定属性并向处理函数发送更新通知。
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

属性 
uid:String

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

此对象的唯一标识符。



实现
    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)

语言版本: 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,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapturefalse,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true,一次将 useCapture 设置为 false
 
priority:int (default = 0) — 事件侦听器的优先级。
 
useWeakReference:Boolean (default = false) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。

相关 API 元素

callProperty

()方法 
override flash_proxy function callProperty(name:*, ... rest):*

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

返回具有指定名称的代理对象的方法值。

参数

name:* — 正被调用的方法的名称。
 
... rest — 一个数组,指定所调用方法的参数。

返回
* — 所调用方法的返回值。

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

()方法 
object_proxy function getComplexProperty(name:*, value:*):*

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

为子类提供一个位置,以覆盖对复杂属性(该属性需要代理或菊花链用于事件浮升)的管理方式。

参数

name:* — 通常是包含属性名称的字符串,也可能是 QName(其中属性名称通过检查 localName 属性获得)。
 
value:* — 属性值。

返回
* — 属性值或 ObjectProxy 实例。

getProperty

()方法 
override flash_proxy function getProperty(name:*):*

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

返回代理对象的指定属性值。

参数

name:* — 通常是包含属性名称的字符串,也可能是 QName(其中属性名称通过检查 localName 属性获得)。

返回
* — 属性的值。在某些实例中,该值可能为一个 ObjectProxy 实例。

hasEventListener

()方法 
public function hasEventListener(type:String):Boolean

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

检查是否为特定事件类型注册了任何事件侦听器。这样,您就可以确定对象在事件流层次结构中的哪个位置改变了对事件类型的处理。有关详细信息,请参阅 flash.events.EventDispatcher 类。

参数

type:String — 事件的类型

返回
Boolean — 如果注册了指定类型的侦听器,则返回 true,否则返回 false

相关 API 元素

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

()方法 
override flash_proxy function setProperty(name:*, value:*):void

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

更新代理对象上的指定属性并向处理函数发送更新通知。

参数

name:* — 包含属性名称的对象,该属性应在代理对象上更新。
 
value:* — 代理对象上应设置的值。

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 进行反序列化的源对象。





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

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