コンポーネントの拡張

Flex 2 SDK で既存のコンポーネントを拡張してコンポーネントを作成するには、いくつかの方法があります。コンポーネントを拡張することで、コンポーネントに新しいプロパティやメソッドを追加できます。

たとえば、次の MXML コンポーネントは "MyComboBox.mxml" ファイルに定義されているコンポーネントで、標準の ComboBox コントロールを拡張し、ニューイングランド地方の州の略称で初期化されます。

<?xml version="1.0"?>
<!-- components\myComponents\MyComboBox.mxml -->
<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:dataProvider>
        <mx:String>CT</mx:String>
        <mx:String>MA</mx:String>
        <mx:String>ME</mx:String>
        <mx:String>NH</mx:String>
        <mx:String>RI</mx:String>
        <mx:String>VT</mx:String>
    </mx:dataProvider>
</mx:ComboBox>

この例はまた、省略可能なコーディングの一例も示しています。Flex では dataProvider は配列と想定されているため、<mx:Array> タグを指定する必要はありません。

新しいコンポーネントを作成したら、そのファイル名を MXML タグ名として指定することで、アプリケーションの任意の場所で新しいコンポーネントを使用できます。次に例を示します。

<?xml version="1.0"?>
<!-- components\MainMyComboBox.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:MyComps="myComponents.*"
    width="150" 
    height="150">

    <MyComps:MyComboBox id="stateNames"/>
</mx:Application>

この例では、新しいコンポーネントがアプリケーションファイルと同じディレクトリに存在するため、アスタリスク (*) で示されたローカル名前空間を MyComps 識別子にマップしています。

Flex では、次の方法のいずれかを使用してカスタムコンポーネントを作成できます。どの方法を選ぶかは、アプリケーションとコンポーネントの要件によって異なります。

カスタムコンポーネントの作成の詳細については、『Flex 2 コンポーネントの作成と拡張』を参照してください。


Flex 2.01