Adobe Flex 3 ヘルプ

コンポーネントの拡張

Flex 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>

前の例で実行する SWF ファイルは以下のとおりです。

この例では、新しいコンポーネントが myComponents サブディレクトリ内にあります。myComponents.* 名前空間は、識別子 MyComps にマッピングされています。

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

  • コンポーネントを MXML ファイルとして作成し、それをカスタムタグとして他の MXML ファイル内で使用する。MXML コンポーネントは、既存のコンポーネントの拡張、特に既存コンポーネントのビヘイビアの変更や既存コンポーネントへの基本機能の追加が簡単に行えるようになっています。
  • UIComponent クラスまたはそのいずれかのサブクラスをサブクラス化することによってコンポーネントを ActionScript ファイルとして作成し、そのクラスをカスタムタグとして使用する。ActionScript コンポーネントは、ビジュアルまたは非ビジュアルコンポーネントを新たに作成するための強力なツールを備えています。

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

 

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