| パッケージ | mx.core |
| クラス | public class ComponentDescriptor |
| 継承 | ComponentDescriptor Object |
| サブクラス | UIComponentDescriptor |
MXML ファイル内のほとんどのタグは、UIComponent オブジェクトのツリーを記述するものです。たとえば、<mx:Application> タグは UIComponent オブジェクトを表し、その子コンテナとコントロールもすべて UIComponent オブジェクトです。
MXML コンパイラは、それぞれの MXML タグを UIComponentDescriptor インスタンスにコンパイルします。厳密には、MXML コンパイラは ActionScript データ構造を自動生成します。これは、UIComponentDescriptor オブジェクトのツリーになります。
実行時に、Container クラスの createComponentsFromDescriptors() メソッドは、コンテナの childDescriptors 配列の UIComponentDescriptor オブジェクト内の情報を使用して、コンテナの子である実際の UIComponent オブジェクト、およびさらに深い子孫を作成します。コンテナのプロパティ creationPolicy の値によっては、アプリケーションの起動時にコンポーネントの一部が表示されるとき、またはアプリケーションの開発者が手動で createComponentsFromDescriptors() メソッドを呼び出したときに、子孫が作成されることがあります。
通常、ComponentDescriptor または UIComponentDescriptor インスタンスを自分で作成することはありません。Container クラスの childDescriptors 配列を経由して、MXML コンパイラが自動生成したインスタンスにアクセスできます。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。 | Object | |
| document : Object
コンポーネントが作成されるドキュメントオブジェクトへの参照です。 | ComponentDescriptor | ||
| events : Object
MXML に指定された、コンポーネントのイベントハンドラの名前と値のペアを含むオブジェクトです。 | ComponentDescriptor | ||
| id : String
MXML に指定されたコンポーネントの識別子です。 | ComponentDescriptor | ||
| properties : Object [読み取り専用]
MXML に指定された、コンポーネントのプロパティの名前と値のペアを含むオブジェクトです。 | ComponentDescriptor | ||
| propertiesFactory : Function
MXML に指定された、コンポーネントのプロパティの名前と値のペアを含むオブジェクトを返す関数です。 | ComponentDescriptor | ||
![]() | prototype : Object [静的]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
| type : Class
MXML に指定されたコンポーネントのクラスです。 | ComponentDescriptor | ||
| メソッド | 定義元 | ||
|---|---|---|---|
コンストラクタです。 | ComponentDescriptor | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
キャッシュされた properties プロパティを無効化します。 | ComponentDescriptor | ||
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
"ComponentDescriptor_" および id プロパティの値を含むストリングを返します。 | ComponentDescriptor | ||
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object | |
| document | プロパティ |
| events | プロパティ |
public var events:ObjectMXML に指定された、コンポーネントのイベントハンドラの名前と値のペアを含むオブジェクトです。
例えば、次のようなコードを作成するとします。
<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:StringMXML に指定されたコンポーネントの識別子です。
例えば、次のようなコードを作成するとします。
<mx:TextInput id="firstName" text="Enter your first name here"/>
記述子の id プロパティはストリング "firstName" です。
コンポーネントに MXML が指定されていない場合、idid プロパティは null になります。
id プロパティの値は、MXML コンパイラによって自動生成された MXML ドキュメントオブジェクトのパブリック変数の名前になります。この変数の値は、この記述子から作成された UIComponent オブジェクトへの参照です。これにより、例えば TextInput コントロールの text プロパティを、この TextInput インスタンスを含むドキュメント内の任意の場所から firstName.text として参照できます。
id が指定されていて、空のストリングではない場合、それは DisplayObject オブジェクトの name になります。 id が指定されていないか空の場合、DisplayObject オブジェクトの name は、"Button3" のような自動生成されたストリングのままです。これは、NameUtil.createUniqueName() メソッドから返されたものと同じです。この name は、toString() メソッドから返されるストリングの生成に使用されます。これを指定して getChildByName() () を呼び出すことにより、親からコンポーネントを見つけることもできます。
関連項目
| properties | プロパティ |
properties:Object [読み取り専用] 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関連項目
| propertiesFactory | プロパティ |
public var propertiesFactory:FunctionMXML に指定された、コンポーネントのプロパティの名前と値のペアを含むオブジェクトを返す関数です。
例えば、次のようなコードを作成するとします。
<mx:TextInput width="150" text="Hello">
この場合、記述子の propertiesFactory プロパティは次の関数です。
function():Object { return { width: 150, text: "Hello" }; }
コンポーネントに MXML プロパティが指定されていない場合、propertiesFactory プロパティは null になります。この場合、コンポーネントはデフォルトのプロパティ値を使用します。
propertyFactory が実際のオブジェクトではなく、オブジェクトを返す関数であるのは、ComponentDescriptor オブジェクトのツリーを段階的に「展開」できるようにするためです。ドキュメントの記述子ツリーのすべての記述子が起動時に作成されると、起動時間が長くなります。
properties プロパティは、このファクトリ関数によって作成された、キャッシュされたオブジェクトを返します。
メモ: click="doSomething();" などのイベントハンドラは、events オブジェクト(properties オブジェクトではない)に含められます。
関連項目
| type | プロパティ |
public var type:ClassMXML に指定されたコンポーネントのクラスです。
例えば、次のようなコードを作成するとします。
<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)コンストラクタです。
パラメータdescriptorProperties:Object — ComponentDescriptor オブジェクトのプロパティ、たとえば type、id、propertiesFactory、events などの名前と値のペアを含むオブジェクトです。
|
| invalidateProperties | () | メソッド |
public function invalidateProperties():void
キャッシュされた properties プロパティを無効化します。次に properties プロパティを読み込むときに、propertiesFactory プロパティの値に指定された関数からプロパティが再生成されます。
| toString | () | メソッド |
public function toString():String
"ComponentDescriptor_" および id プロパティの値を含むストリングを返します。
String — "ComponentDescriptor_" および id プロパティの値を含むストリングです。
|
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/mx/core/ComponentDescriptor.html