| 包 | mx.utils |
| 类 | public class ObjectUtil |
| 继承 | ObjectUtil Object |
| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 3 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
ObjectUtil.isSimple() 之类的静态方法。
| 方法 | 由以下参数定义 | ||
|---|---|---|---|
[静态]
克隆指定对象,并返回对该克隆的引用。 | ObjectUtil | ||
[静态]
比较这些对象并返回一个整数值,指示第一项小于、大于还是等于第二项。 | ObjectUtil | ||
[静态]
复制指定对象并返回对该副本的引用。 | ObjectUtil | ||
[静态]
比较两个 Date 对象并返回一个整数值,指示第一个 Date 对象是在第二个 Date 对象之前、相等还是之后。 | ObjectUtil | ||
[静态]
返回指定对象的关于该类以及该类的属性的信息。 | ObjectUtil | ||
hasMetadata(obj:Object, propName:String, metadataName:String, excludes:Array = null, options:Object = null):Boolean [静态]
使用 getClassInfo 并检查元数据信息以确定给定对象上的属性是否具有指定的元数据。 | ObjectUtil | ||
![]() |
表示对象是否已经定义了指定的属性。 | Object | |
[静态]
如果对象是一个动态类的实例,则返回 true。 | ObjectUtil | ||
![]() |
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
[静态]
如果指定的对象引用为简单数据类型,则返回 true。 | ObjectUtil | ||
[静态]
比较两个数值。 | ObjectUtil | ||
![]() |
表示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
[静态]
比较两个字符串值。 | ObjectUtil | ||
![]() |
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | |
[静态]
将指定的对象代码美化为一个字符串。 | ObjectUtil | ||
![]() |
返回指定对象的原始值。 | Object | |
clone | () | 方法 |
public static function clone(value:Object):Object| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 4 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
克隆指定对象,并返回对该克隆的引用。该克隆使用本机序列化技术生成。这意味着在克隆过程中将遵循该自定义的序列化。clone() 与 copy() 的不同之处在于,每个对象实例的 uid 属性会被保留。
该方法用于克隆数据对象,如集合的元素。不能用于克隆 UIComponent 对象,如 TextInput 控件。如果希望克隆特定的 UIComponent 对象,则可以创建该组件的一个子类,并实现 clone() 方法。
参数
value:Object — 应克隆的对象。
|
Object — 指定对象的克隆。
|
compare | () | 方法 |
public static function compare(a:Object, b:Object, depth:int = -1):int| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 3 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
比较这些对象并返回一个整数值,指示第一项小于、大于还是等于第二项。该方法将以递归方式比较嵌套对象上的属性,并在发现非零结果后立即返回。默认情况下,该方法将递归到任何属性的最深层。要更改比较的深度,可为 depth 参数指定非负值。
参数
a:Object — object。
| |
b:Object — object。
| |
depth:int (default = -1) — 指示在进行比较时应递归的层数。对于仅比较每个属性的原始表示形式的浅层比较,将该值设为 0。例如:
var a:Object = {name:"Bob", info:[1,2,3]};
var b:Object = {name:"Alice", info:[5,6,7]};
var c:int = ObjectUtil.compare(a, b, 0);
在上例中, 当进行比较时, |
int — 如果 a 和 b 为 null、NaN 或相等,则返回 0。如果 a 为 null 或大于 b,则返回 1。如果 b 为 null 或大于 a,则返回 -1。
|
copy | () | 方法 |
public static function copy(value:Object):Object| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 3 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
复制指定对象并返回对该副本的引用。该副本使用本机序列化技术生成。这意味着在复制过程中将遵循该自定义的序列化。
该方法设计用于复制数据对象,如集合的元素。不能用于复制 UIComponent 对象,如 TextInput 控件。如果要创建特定 UIComponent 对象的副本,可创建该组件的子类并实现 clone() 方法,或执行复制的其他方法。
参数
value:Object — 应复制的对象。
|
Object — 指定对象的副本。
|
dateCompare | () | 方法 |
public static function dateCompare(a:Date, b:Date):int| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 3 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
比较两个 Date 对象并返回一个整数值,指示第一个 Date 对象是在第二个 Date 对象之前、相等还是之后。
参数
a:Date — Date 对象。
| |
b:Date — Date 对象。
|
int — 如果 a 和 b 相等(或者同为 null)则为 0;如果 a 在 b 之前(或者 b 为 null)则为 -1;如果 a 在 b 之后(或者 a 为 null)则为 1。
|
getClassInfo | () | 方法 |
public static function getClassInfo(obj:Object, excludes:Array = null, options:Object = null):Object| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 3 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
返回指定对象的关于该类以及该类的属性的信息。
参数
obj:Object — 要检查的 Object。
| |
excludes:Array (default = null) — 指定应从返回结果中排除的属性名称的字符串数组。例如,可以指定 Event 对象的 ["currentTarget", "target"],因为这些属性可导致返回结果变大。
| |
options:Object (default = null) — 该对象包含一个或多个属性,控制由该方法返回的信息。这些属性包括:
|
Object — 对象包含下列属性:
|
hasMetadata | () | 方法 |
public static function hasMetadata(obj:Object, propName:String, metadataName:String, excludes:Array = null, options:Object = null):Boolean| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 3 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
使用 getClassInfo 并检查元数据信息以确定给定对象上的属性是否具有指定的元数据。
参数
obj:Object — 包含该属性的对象。
| |
propName:String — 要检查元数据的属性。
| |
metadataName:String — 要在属性上检查的元数据的名称。
| |
excludes:Array (default = null) — 在生成类信息时是否需排除一些属性。(可选)
| |
options:Object (default = null) — 在生成类信息时是否需更改一些选项标志。(可选)
|
Boolean — 如果属性具有指定的元数据,则为 true。
|
isDynamicObject | () | 方法 |
isSimple | () | 方法 |
numericCompare | () | 方法 |
stringCompare | () | 方法 |
public static function stringCompare(a:String, b:String, caseInsensitive:Boolean = false):int| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 3 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
比较两个字符串值。
参数
a:String — 第一个字符串值。
| |
b:String — 第二个字符串值。
| |
caseInsensitive:Boolean (default = false) — 指定执行不区分大小写的比较,为 true;否则为 false。
|
int — 如果两个字符串都为 null,则为 0。如果只有 a 为 null,则为 1。如果只有 b 为 null,则为 -1。如果 a 在 b 之前,则为 -1。如果 b 在 a 之前,则为 1。
|
toString | () | 方法 |
public static function toString(value:Object, namespaceURIs:Array = null, exclude:Array = null):String| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 3 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
将指定的对象代码美化为一个字符串。所有属性将按字母排序。打印过程中将为每个对象分配一个 ID;该值将在对象类型标记的旁边显示,前面带有“#”号,例如:
(mx.messaging.messages::AsyncMessage)#2.
此 ID 用于指示 circular 引用发生的时间。Class 类型的对象属性将仅显示为分配的类型。例如如下所示的自定义的定义:
public class MyCustomClass {
public var clazz:Class;
}
为 clazz 属性分配Date 的显示如下:
(somepackage::MyCustomClass)#0
clazz = (Date)
参数
value:Object — 要美化打印的对象。
| |
namespaceURIs:Array (default = null) — 输出中要包括的属性的命名空间 URI 数组。默认情况下,输出中仅包括公共命名空间中的属性。要获取不考虑命名空间的所有属性,传递仅有单个元素 "*" 的数组。
| |
exclude:Array (default = null) — 应从输出中排除的属性名称的数组。使用它从格式化的字符串中删除数据。
|
String — 包含指定对象格式化版本的字符串。
|
示例
如何使用本示例
// example 1
var obj:AsyncMessage = new AsyncMessage();
obj.body = [];
obj.body.push(new AsyncMessage());
obj.headers["1"] = { name: "myName", num: 15.3};
obj.headers["2"] = { name: "myName", num: 15.3};
obj.headers["10"] = { name: "myName", num: 15.3};
obj.headers["11"] = { name: "myName", num: 15.3};
trace(ObjectUtil.toString(obj));
// will output to flashlog.txt
(mx.messaging.messages::AsyncMessage)#0
body = (Array)#1
[0] (mx.messaging.messages::AsyncMessage)#2
body = (Object)#3
clientId = (Null)
correlationId = ""
destination = ""
headers = (Object)#4
messageId = "378CE96A-68DB-BC1B-BCF7FFFFFFFFB525"
sequenceId = (Null)
sequencePosition = 0
sequenceSize = 0
timeToLive = 0
timestamp = 0
clientId = (Null)
correlationId = ""
destination = ""
headers = (Object)#5
1 = (Object)#6
name = "myName"
num = 15.3
10 = (Object)#7
name = "myName"
num = 15.3
11 = (Object)#8
name = "myName"
num = 15.3
2 = (Object)#9
name = "myName"
num = 15.3
messageId = "1D3E6E96-AC2D-BD11-6A39FFFFFFFF517E"
sequenceId = (Null)
sequencePosition = 0
sequenceSize = 0
timeToLive = 0
timestamp = 0
// example 2 with circular references
obj = {};
obj.prop1 = new Date();
obj.prop2 = [];
obj.prop2.push(15.2);
obj.prop2.push("testing");
obj.prop2.push(true);
obj.prop3 = {};
obj.prop3.circular = obj;
obj.prop3.deeper = new ErrorMessage();
obj.prop3.deeper.rootCause = obj.prop3.deeper;
obj.prop3.deeper2 = {};
obj.prop3.deeper2.deeperStill = {};
obj.prop3.deeper2.deeperStill.yetDeeper = obj;
trace(ObjectUtil.toString(obj));
// will output to flashlog.txt
(Object)#0
prop1 = Tue Apr 26 13:59:17 GMT-0700 2005
prop2 = (Array)#1
[0] 15.2
[1] "testing"
[2] true
prop3 = (Object)#2
circular = (Object)#0
deeper = (mx.messaging.messages::ErrorMessage)#3
body = (Object)#4
clientId = (Null)
code = (Null)
correlationId = ""
destination = ""
details = (Null)
headers = (Object)#5
level = (Null)
message = (Null)
messageId = "14039376-2BBA-0D0E-22A3FFFFFFFF140A"
rootCause = (mx.messaging.messages::ErrorMessage)#3
sequenceId = (Null)
sequencePosition = 0
sequenceSize = 0
timeToLive = 0
timestamp = 0
deeper2 = (Object)#6
deeperStill = (Object)#7
yetDeeper = (Object)#0
// example 3 with Dictionary
var point:Point = new Point(100, 100);
var point2:Point = new Point(100, 100);
var obj:Dictionary = new Dictionary();
obj[point] = "point";
obj[point2] = "point2";
obj["1"] = { name: "one", num: 1};
obj["two"] = { name: "2", num: 2};
obj[3] = 3;
trace(ObjectUtil.toString(obj));
// will output to flashlog.txt
(flash.utils::Dictionary)#0
{(flash.geom::Point)#1
length = 141.4213562373095
x = 100
y = 100} = "point2"
{(flash.geom::Point)#2
length = 141.4213562373095
x = 100
y = 100} = "point"
{1} = (Object)#3
name = "one"
num = 1
{3} = 3
{"two"} = (Object)#4
name = "2"
num = 2
Tue Jun 12 2018, 11:04 AM Z
隐藏继承的公共属性
显示继承的公共属性