パッケージmx.utils
クラスpublic class ObjectUtil
継承ObjectUtil Inheritance Object

ObjectUtil クラスは、Flex でオブジェクトを使用するためのメソッドを持つ完全に静的なクラスです。ObjectUtil のインスタンスを作成する必要はなく、ObjectUtil.isSimple() メソッドなどの静的メソッドを呼び出すだけです。



パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義元
  
compare(a:Object, b:Object, depth:int = -1):int
[静的] オブジェクトを比較し、最初のアイテムが 2 番目のアイテム未満またはそれ以上かどうかを示す整数値を返します。
ObjectUtil
  
[静的] 指定されたオブジェクトをコピーし、コピーへの参照を返します。
ObjectUtil
  
[静的] 2 つの Date オブジェクトを比較し、最初の Date オブジェクトが 2 番目のアイテムより前か、同じか、または後かどうかを示す整数値を返します。
ObjectUtil
  
getClassInfo(obj:Object, excludes:Array = null, options:Object = null):Object
[静的] 指定されたオブジェクトに関して、クラス情報およびクラスプロパティを返します。
ObjectUtil
  
hasMetadata(obj:Object, propName:String, metadataName:String, excludes:Array = null, options:Object = null):Boolean
[静的] getClassInfo を使用してメタデータ情報を調べ、特定オブジェクトのプロパティに指定されたメタデータがあるかどうかを判断します。
ObjectUtil
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  
[静的] オブジェクト参照が単純なデータ型で指定されている場合に true を返します。
ObjectUtil
  
[静的] 2 つの数値を比較します。
ObjectUtil
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
stringCompare(a:String, b:String, caseInsensitive:Boolean = false):int
[静的] 2 つの String 値を比較します。
ObjectUtil
  
toString(value:Object, namespaceURIs:Array = null, exclude:Array = null):String
[静的] 指定されたオブジェクトをストリングにプリティプリントします。
ObjectUtil
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
メソッドの詳細
compare()メソッド
public static function compare(a:Object, b:Object, depth:int = -1):int

オブジェクトを比較し、最初のアイテムが 2 番目のアイテム未満またはそれ以上かどうかを示す整数値を返します。このメソッドはネストされたオブジェクトを再帰的に比較し、0 以外の結果を検出するとすぐに結果を返します。デフォルトでは、このメソッドはすべてのプロパティの最も深いネストレベルまで反復します。比較の深さを変更するには、depth パラメータに負ではない値を指定します。

パラメータ

a:Object — オブジェクトです。
 
b: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);

上記の例では、ab を組み合わせたプロパティは、比較時に toString() の呼び出しによって統合されます。この場合、info プロパティは比較を実行するときにストリングに変換されます。

戻り値
int — a および b が null、NaN、または等しい場合は 0 を返します。a が null または b より大きい場合は 1 を返し、b が null または a より大きい場合は -1 を返します。
copy()メソッド 
public static function copy(value:Object):Object

指定されたオブジェクトをコピーし、コピーへの参照を返します。コピーは、ネイティブ直列化方法を使用して行われます。つまり、コピー中にカスタム直列化が順守されます。

このメソッドは、コレクションのエレメントなどのデータオブジェクトをコピーすることを目的としています。TextInput コントロールなどの UIComponent オブジェクトのコピーは目的としていません。特定の UIComponent オブジェクトのコピーを作成するには、コンポーネントのサブクラスを作成し、clone() メソッド、またはコピーを行う他のメソッドを実装します。

パラメータ

value:Object — コピーするオブジェクトです。

戻り値
Object — 指定されたオブジェクトのコピーです。
dateCompare()メソッド 
public static function dateCompare(a:Date, b:Date):int

2 つの Date オブジェクトを比較し、最初の Date オブジェクトが 2 番目のアイテムより前か、同じか、または後かどうかを示す整数値を返します。

パラメータ

a:Date — Date オブジェクトです。
 
b:Date — Date オブジェクトです。

戻り値
inta および bnull または等しい場合は 0 です。anull または b より前の場合は 1です。bnull または a より前の場合は -1 です。
getClassInfo()メソッド 
public static function getClassInfo(obj:Object, excludes:Array = null, options:Object = null):Object

指定されたオブジェクトに関して、クラス情報およびクラスプロパティを返します。

パラメータ

obj:Object — 調べるオブジェクトです。
 
excludes:Array (default = null) — 返される結果から除外する必要があるプロパティ名を指定するストリングの配列です。たとえば、Event オブジェクトに ["currentTarget", "target"] を指定することができます。これらのプロパティは、返される結果を大きくする場合があるためです。
 
options:Object (default = null) — このメソッドによって返される情報を制御するプロパティを持つオブジェクト。このプロパティには次のようなものがあります。
  • includeReadOnlyfalse の場合、読み取り専用のオブジェクトプロパティが除外されます。デフォルト値は true です。
  • includeTransientfalse の場合、[Transient] メタデータを含むオブジェクトプロパティおよび変数が除外されます。デフォルト値は true です。
  • uris:出力に含める必要があるすべての名前空間のストリングの配列です。 ワイルドカード "*" は使用できます。 デフォルトでは null になっているため、名前空間は含められません。 例えば、["mx_internal", "mx_object"] または ["*"] を指定できます。

戻り値
Object — 以下のプロパティを持つオブジェクトです。
  • name:クラスの名前を含むストリングです。
  • properties: 特定のオブジェクトのプロパティ名のソートされたリスト、または指定されたオブジェクトが Dictionary の場合は元のキーへの参照です。
hasMetadata()メソッド 
public static function hasMetadata(obj:Object, propName:String, metadataName:String, excludes:Array = null, options:Object = null):Boolean

getClassInfo を使用してメタデータ情報を調べ、特定オブジェクトのプロパティに指定されたメタデータがあるかどうかを判断します。

パラメータ

obj:Object — プロパティを保持するオブジェクトです。
 
propName:String — メタデータをチェックするプロパティです。
 
metadataName:String — プロパティでチェックするメタデータの名前です。
 
excludes:Array (default = null) — クラス情報を生成するときに、除外する必要のあるプロパティがあるかどうかを示します。(オプション)
 
options:Object (default = null) — クラス情報を生成するときに、変更するオプションフラグがあるかどうかを示します。(オプション)

戻り値
Boolean — プロパティに指定されたメタデータがある場合は true です。
isSimple()メソッド 
public static function isSimple(value:Object):Boolean

オブジェクト参照が単純なデータ型で指定されている場合に true を返します。単純なデータ型には次のようなものがあります。

パラメータ

value:Object — 調べられたオブジェクトです。

戻り値
Boolean — 指定されたオブジェクトが上記のいずれかの型の場合は true、それ以外の場合は false です。
numericCompare()メソッド 
public static function numericCompare(a:Number, b:Number):int

2 つの数値を比較します。

パラメータ

a:Number — 最初の数値です。
 
b:Number — 2 番目の数値です。

戻り値
int — 両方の数値が NaN の場合は 0 です。a のみが NaN の場合は 1 です。b のみが NaN の場合は -1 です。 ab 未満の場合は -1 です。ab より大きい場合は 1 です。
stringCompare()メソッド 
public static function stringCompare(a:String, b:String, caseInsensitive:Boolean = false):int

2 つの String 値を比較します。

パラメータ

a:String — 最初の String 値です。
 
b:String — 2 番目の String 値です。
 
caseInsensitive:Boolean (default = false) — 大文字と小文字を区別しない比較を行う場合は true、行わない場合は false を指定します。

戻り値
int — 両方の String が null の場合は 0 です。a のみが null の場合は 1 です。b のみが null の場合は -1 です。ab より前に来る場合は -1 です。ba より前に来る場合は 1 です。
toString()メソッド 
public static function toString(value:Object, namespaceURIs:Array = null, exclude:Array = null):String

指定されたオブジェクトをストリングにプリティプリントします。すべてのプロパティは、アルファベット順に配置されます。印刷中に、各オブジェクトには ID が割り当てられます。この値の先頭には "#" が追加され、オブジェクト型トークンの隣に表示されます。例えば、次のようになります。

      (mx.messaging.messages::AsyncMessage)#2.

この ID はいつ循環参照が発生するかを示します。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
     
     




 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/mx/utils/ObjectUtil.html