| パッケージ | mx.core |
| クラス | public class ClassFactory |
| 継承 | ClassFactory Object |
| 実装 | IFactory |
| サブクラス | ContextualClassFactory |
ファクトリオブジェクトを作成するときには、generator クラスを指定します。次に、ファクトリオブジェクトに properties プロパティを設定します。Flex はファクトリオブジェクトを使用し、ファクトリオブジェクト の newInstance() メソッドを呼び出すことによってインスタンスを作成します。
newInstance() メソッドは、generator クラスの新しいインスタンスを作成し、そのインスタンスの properties に指定されたプロパティを設定します。作成されたインスタンスをさらにカスタマイズする必要がある場合は、newInstance() メソッドをオーバーライドできます。
ClassFactory クラスは IFactory インターフェイスを実装します。したがって、List コントロールの itemRenderer プロパティや DataGrid コントロールの itemEditor プロパティのように、IFactory 型のプロパティに代入できるオブジェクトを作成できます。
例えば、ProductRenderer という名前のアイテムレンダラークラスを作成し、その showProductImage プロパティを true または false に設定できるとします。 List コントロールでこのレンダラーを使用し、各レンダラーインスタンスで製品の画像を表示する場合は、次のようなコードを作成します。
var productRenderer:ClassFactory = new ClassFactory(ProductRenderer);
productRenderer.properties = { showProductImage: true };
myList.itemRenderer = productRenderer;
List コントロールは、newInstance() メソッドを itemRenderer で呼び出し、ProductRenderer の個々のインスタンスを作成します。各インスタンスの showProductImage プロパティは true に設定されます。製品の画像を除外した別のコントロールが必要な場合は、ProductRenderer クラスを使用して、properties プロパティを { showProductImage: false } に設定した別の ClassFactory を作成します。
properties プロパティを使用してインスタンスを設定する方法は、1 つのジェネレータクラスを様々な方法で使用できるため便利です。 ただし、通常はプロパティを設定する必要のない非設定ジェネレータクラスを作成します。そのため、MXML では次のシンタックスを使用できます。
<mx:List id="myList" itemRenderer="ProductRenderer">
MXML コンパイラが自動的に ClassFactory インスタンスを作成します。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。 | Object | |
| generator : Class
このファクトリオブジェクトからオブジェクトを作成するために、newInstance() メソッドが使用するクラスです。 | ClassFactory | ||
| properties : Object = null
このオブジェクトの名前と値のペアによって指定されるプロパティが、newInstance() メソッドによって作成される各オブジェクトに設定されます。 | ClassFactory | ||
![]() | prototype : Object [静的]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
| メソッド | 定義元 | ||
|---|---|---|---|
コンストラクタです。 | ClassFactory | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | |
newInstance():*
properties に指定されたプロパティを使用して、generator クラスの新しいインスタンスを作成します。 | ClassFactory | ||
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。 | Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。 | Object | |
| generator | プロパティ |
public var generator:Class
このファクトリオブジェクトからオブジェクトを作成するために、newInstance() メソッドが使用するクラスです。
| properties | プロパティ |
public var properties:Object = null
このオブジェクトの名前と値のペアによって指定されるプロパティが、newInstance() メソッドによって作成される各オブジェクトに設定されます。
例えば、properties を { text: "Hello", width: 100 } に設定した場合、generator クラスの各インスタンス(newInstance() を呼び出して作成したもの)は、text が "Hello" に設定され、width が 100 に設定されます。
デフォルト値 : null.
| ClassFactory | () | コンストラクタ |
public function ClassFactory(generator:Class = null)コンストラクタです。
パラメータgenerator:Class (default = null) — このファクトリオブジェクトからオブジェクトを作成するために、newInstance() メソッドが使用するクラスです。
|
| newInstance | () | メソッド |
public function newInstance():*
generator クラスの新しいインスタンスを、properties に指定されたプロパティを使用して作成します。
このメソッドによって、IFactory インターフェイスの newInstance() メソッドが実装されます。
* — 作成された新しいインスタンスです。
|
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/mx/core/ClassFactory.html