Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド
ホーム  |  パッケージおよびクラスリストの非表示 |  パッケージ  |  クラス  |  新機能  |  索引  |  付録  |  英語で表示される理由
フィルター: サーバーからデータを取得しています...
サーバーからデータを取得しています...
mx.core 

ComponentDescriptor  - AS3 Flex

パッケージmx.core
クラスpublic class ComponentDescriptor
継承ComponentDescriptor Inheritance Object
サブクラス UIComponentDescriptor

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

ComponentDescriptor は、UIComponentDescriptor クラスの基本クラスです。UIComponentDescriptor クラスは、ビジュアルコンポーネントのインスタンスの MXML タグに指定された情報をカプセル化します。Flex では、ビジュアルではないコンポーネントは別に扱われ、記述子を持ちませんが、将来のバージョンでは、それらのコンポーネントについても ComponentDescriptor 基本クラスが使用されるようになる可能性があります。

MXML ファイル内のほとんどのタグは、UIComponent オブジェクトのツリーを記述するものです。 例えば、<mx:Application> タグは UIComponent オブジェクトを表し、その子コンテナとコントロールもすべて UIComponent オブジェクトです。

MXML コンパイラーは、それぞれの MXML タグを UIComponentDescriptor インスタンスにコンパイルします。 厳密には、MXML コンパイラーは ActionScript データ構造を自動生成します。これは、UIComponentDescriptor オブジェクトのツリーになります。

実行時に、Container クラスの createComponentsFromDescriptors() メソッドは、コンテナの childDescriptors 配列の UIComponentDescriptor オブジェクト内の情報を使用して、コンテナの子である実際の UIComponent オブジェクト、およびその下位要素を作成します。 コンテナの creationPolicy プロパティの値によっては、アプリケーションの起動時にコンポーネントの一部が表示されるとき、またはアプリケーションの開発者が手動で createComponentsFromDescriptors() メソッドを呼び出したときに、下位要素が作成されることがあります。

通常、ComponentDescriptor または UIComponentDescriptor インスタンスを自分で作成することはありません。Container クラスの childDescriptors 配列を経由して、MXML コンパイラーが自動生成したインスタンスにアクセスできます。

関連する API エレメント



パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。
Object
  document : Object
コンポーネントが作成されるドキュメントオブジェクトへの参照です。
ComponentDescriptor
  events : Object
MXML に指定された、コンポーネントのイベントハンドラーの名前と値のペアを含むオブジェクトです。
ComponentDescriptor
  id : String
MXML に指定されたコンポーネントの識別子です。
ComponentDescriptor
  properties : Object
[読み取り専用] MXML に指定された、コンポーネントのプロパティの名前と値のペアを含むオブジェクトです。
ComponentDescriptor
  propertiesFactory : Function
MXML に指定された、コンポーネントのプロパティの名前と値のペアを含むオブジェクトを返す関数です。
ComponentDescriptor
  type : Class
MXML に指定されたコンポーネントのクラスです。
ComponentDescriptor
パブリックメソッド
 メソッド定義元
  
ComponentDescriptor(descriptorProperties:Object)
コンストラクターです。
ComponentDescriptor
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
  
キャッシュされた properties プロパティを無効化します。
ComponentDescriptor
 Inherited
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。
Object
  
"ComponentDescriptor_" および id プロパティの値を含むストリングを返します。
ComponentDescriptor
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細

document

プロパティ
public var document:Object

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

コンポーネントが作成されるドキュメントオブジェクトへの参照です。

関連する API エレメント

events

プロパティ 
public var events:Object

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

MXML に指定された、コンポーネントのイベントハンドラーの名前と値のペアを含むオブジェクトです。

例えば、次のようなコードを作成するとします。

      <mx:DataGrid id="dg" initialize="fetchData(); initDataGrid();"  change="changeHandler(event);"/>
      

この場合、記述子の events プロパティは次のオブジェクトです。

      { initialize: "__dg_initialize", change: "__dg_change" }
      

コンポーネントに MXML イベントハンドラーが指定されていない場合、event プロパティは null になります。

ストリング "__dg_initialize" および "__dg_change" は、MXML コンパイラーが自動生成するイベントハンドラーメソッドの名前です。 これらのメソッドの本体には、イベント属性の値として指定された ActionScript ステートメントが入ります。 例えば、自動生成された initialize ハンドラーは次のようになります。

      public function __dg_initialize(event:mx.events.FlexEvent):void
      {
          fetchData();
          initDataGrid();
      }
      

自動生成されたイベントハンドラーが常に名前で指定されると想定しないでください。これは、Flex の将来のバージョンで変更される可能性があります。

Container の createComponentsFromDescriptors() メソッドはこのプロパティを使用して、addEventListener() メソッドにより自動生成されたイベントハンドラーを登録します。

id

プロパティ 
public var id:String

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

MXML に指定されたコンポーネントの識別子です。

例えば、次のようなコードを作成するとします。

      <mx:TextInput id="firstName" text="Enter your first name here"/>
      

この場合、記述子の id プロパティはストリング "firstName" です。

コンポーネントに MXML ID が指定されていない場合、id プロパティは null になります。

id プロパティの値は、MXML コンパイラーによって自動生成された MXML ドキュメントオブジェクトのパブリック変数の名前になります。 この変数の値は、この記述子から作成された UIComponent オブジェクトへの参照です。 これにより、例えば TextInput コントロールの text プロパティを、この TextInput インスタンスを含むドキュメント内の任意の場所から firstName.text として参照できます。

id が指定されていて、空のストリングではない場合、それは DisplayObject オブジェクトの name になります。 id が指定されていないか空の場合、DisplayObject オブジェクトの name は、"Button3" のような自動生成されたストリングのままです。これは、NameUtil.createUniqueName() メソッドから返されたものと同じです。 この name は、toString() メソッドから返されるストリングの生成に使用されます。 これを指定して getChildByName() を呼び出すことにより、親からコンポーネントを見つけることもできます。

関連する API エレメント

properties

プロパティ 
properties:Object  [読み取り専用]

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

MXML に指定された、コンポーネントのプロパティの名前と値のペアを含むオブジェクトです。

例えば、次のようなコードを作成するとします。

      <mx:TextInput width="150" text="Hello"/>
      

この場合、記述子の properties プロパティはこのオブジェクトです。

      { width: 150, text: "Hello" }
      

コンポーネントに MXML プロパティが指定されていない場合、properties プロパティは null になります。 この場合、コンポーネントはデフォルトのプロパティ値を使用します。

このオブジェクトは、propertiesFactory プロパティに指定された関数を呼び出すことによって作成され、以降のアクセスのためにキャッシュされます。 ただし、Repeater が同じ記述子から複数のコンポーネントインスタンスを作成するときは、コンポーネントインスタンスごとに properties オブジェクトの最新コピーを作成し、コンポーネントインスタンスが配列またはオブジェクト参照のプロパティ値を共有しないようにする必要があります。 Repeater は、記述子に対して invalidateProperties() メソッドを呼び出すことによってこれを実現します。



実装
    public function get properties():Object

関連する API エレメント

propertiesFactory

プロパティ 
public var propertiesFactory:Function

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

MXML に指定された、コンポーネントのプロパティの名前と値のペアを含むオブジェクトを返す関数です。

例えば、次のようなコードを作成するとします。

      <mx:TextInput width="150" text="Hello">
      

この場合、記述子の propertiesFactory プロパティは次の関数です。

      function():Object { return { width: 150, text: "Hello" }; }
      

コンポーネントに MXML プロパティが指定されていない場合、propertiesFactory プロパティは null になります。 この場合、コンポーネントはデフォルトのプロパティ値を使用します。

propertyFactory が実際のオブジェクトではなく、オブジェクトを返す関数であるのは、ComponentDescriptor オブジェクトのツリーを段階的に「展開」できるようにするためです。 ドキュメントの記述子ツリーのすべての記述子が起動時に作成されると、起動時間が長くなります。

properties プロパティは、このファクトリ関数によって作成された、キャッシュされたオブジェクトを返します。

メモ: click="doSomething();" などのイベントハンドラーは、events オブジェクト(properties オブジェクトではない)に含められます。

関連する API エレメント

type

プロパティ 
public var type:Class

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

MXML に指定されたコンポーネントのクラスです。

例えば、次のようなコードを作成するとします。

      <mx:TextInput/>
      

この場合、記述子の type プロパティはクラス mx.controls.TextInput です。

MXML コンパイラーによって作成された ComponentDescriptor オブジェクトの場合、すべての MXML タグが mx:TextInput のようなタグ名を持つため、プロパティは null になりません。

MXML タグとその対応クラスのマッピングは、XML 名前空間とその名前空間に関連付けられた「マニフェストファイル」(存在する場合)によって決まります。 例えば、接頭辞 mx: によって表される標準 Flex 名前空間 http://www.adobe.com/2006/mxml は、(flex-config.xml ファイルで)マニフェストファイル mxml-manifest.xml に関連付けられており、このファイルは次のタグを持ちます。

      <component id="TextInput" class="mx.controls.TextInput"/>
      

これは、タグ名 mx:TextInput をクラス mx.controls.TextInput にマップします。マニフェストファイルを使用することにより、単一の XML 名前空間のコンポーネントを複数の ActionScript パッケージのクラスにマップできます。

コンストラクターの詳細

ComponentDescriptor

()コンストラクター
public function ComponentDescriptor(descriptorProperties:Object)

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

コンストラクターです。

パラメーター
descriptorProperties:Object — ComponentDescriptor オブジェクトのプロパティ (typeidpropertiesFactoryevents など) の名前と値のペアを含むオブジェクトです。
メソッドの詳細

invalidateProperties

()メソッド
public function invalidateProperties():void

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

キャッシュされた properties プロパティを無効化します。次に properties プロパティを読み込むときに、propertiesFactory プロパティの値に指定された関数からプロパティが再生成されます。

toString

()メソッド 
public function toString():String

言語バージョン: ActionScript 3.0
製品バージョン: Flex 3
ランタイムバージョン: Flash Player 9, AIR 1.1

"ComponentDescriptor_" および id プロパティの値を含むストリングを返します。

戻り値
String — "ComponentDescriptor_" および id プロパティの値を含むストリングです。




[ X ]英語で表示される理由
ActionScript 3.0 リファレンスガイドのコンテンツが英語で表示されます。

ActionScript 3.0 リファレンスガイドのすべての部分がすべての言語に翻訳されているわけではありません。言語エレメントが翻訳されていない場合、そのエレメントは英語で表示されます。例えば、ga.controls.HelpBox クラスはどの言語にも訳されていません。このため、リファレンスガイドの日本語バージョンでは、ga.controls.HelpBox クラスは英語で表示されます。