ComboBox コンポーネントの使用

ComboBox コンポーネントを使用すると、ユーザーがドロップダウンリストから 1 つのアイテムを選択できます。ComboBox には、静的なコンボボックスと編集可能なコンボボックスがあります。編集可能な ComboBox では、リストの一番上にあるテキストフィールドにユーザーがテキストを直接入力できます。 ドロップダウンリストがドキュメントの下端にぶつかる場合は、リストが下ではなく上に伸びます。 ComboBox は、3 つのサブコンポーネント(BaseButton、TextInput、および List)で構成されます。

編集可能な ComboBox の場合は、ボタンの部分だけがヒット領域になり、テキストボックスはヒット領域に含まれません。静的な ComboBox の場合は、ボタンとテキストボックスの両方がヒット領域になります。 ヒット領域をクリックすると、ドロップダウンリストの開閉を切り替えることができます。

ユーザーがマウスまたはキーボードのいずれかを使用してリストからアイテムを選択すると、選択したアイテムのラベルが ComboBox の上部にあるテキストフィールドにコピーされます。

ComboBox コンポーネントのユーザー操作

ComboBox コンポーネントは、フォームやアプリケーション内でユーザーにリストから 1 つのアイテムを選択させたい場合に使用できます。 例えば、顧客の住所を入力するフォームで州名をドロップダウンリストから選択できるようにする用途などが考えられます。 もっと複雑なシナリオでは、編集可能な ComboBox を使用することもできます。 例えば、道順を案内するアプリケーションで、出発地と目的地の住所を入力する欄に編集可能な ComboBox を使用し、 以前に入力した住所をドロップダウンリストから選択できる機能を作成できます。

ComboBox が編集可能、つまり editable プロパティが true の場合は、次のキーを使用するとテキスト入力ボックスからフォーカスが離れ、前の値がそのまま残ります。ユーザーが入力したテキストを、Enter キーで新しい値として最初に適用する場合は例外です。

キー

説明

Shift+Tab

フォーカスを前のアイテムに移動します。 新しいアイテムが選択されると、 change イベントが送り出されます。

Tab

フォーカスを次のアイテムに移動します。 新しいアイテムが選択されると、 change イベントが送り出されます。

下向き矢印

1 つ下のアイテムを選択します。

End

リストの一番下のアイテムを選択します。

Esc

ドロップダウンリストを閉じて、フォーカスを ComboBox に戻します。

Enter

ドロップダウンリストを閉じて、フォーカスを ComboBox に戻します。 編集可能な ComboBox にユーザーがテキストを入力した場合は、入力されたテキストが値として設定されます。

Home

リストの一番上のアイテムを選択します。

Page Up

1 ページ上のアイテムを選択します。

Page Down

1 ページ下のアイテムを選択します。

ComboBox コンポーネントをアプリケーションに追加する際に、次の ActionScript コード行を追加することで、そのコンポーネントをスクリーンリーダーが読み取れるように設定できます。

import fl.accessibility.ComboBoxAccImpl; 
 
ComboBoxAccImpl.enableAccessibility();

1 つのコンポーネントに対してアクセシビリティ機能を有効化する処理は、そのコンポーネントのインスタンスをいくつ使用するかに関係なく、一度だけ実行します。

ComboBox コンポーネントのパラメーター

プロパティインスペクターまたはコンポーネントインスペクターで ComboBox の各インスタンスに設定できるパラメーターは、 dataProvider editable prompt および rowCount です。これらの各パラメーターには、対応する同名の ActionScript プロパティがあります。 これらのパラメーターに設定できる値については、「 Adobe Flash Professional CS5 用 ActionScript 3.0 リファレンスガイド 」の ComboBox クラスを参照してください。dataProvider パラメーターの使用について詳しくは、 dataProvider パラメーターの使用 を参照してください。

ComboBox コンポーネントを使用したアプリケーションの作成

次の手順は、オーサリング時に ComboBox コンポーネントをアプリケーションに追加する方法を示しています。 この例では ComboBox が編集可能であり、テキストフィールドに Add と入力すると、ドロップダウンリストにアイテムが追加されます。

  1. 新しい Flash (ActionScript 3.0) ドキュメントを作成します。

  2. ComboBox をステージにドラッグし、インスタンス名を aCb にします。「パラメーター」タブで、 editable パラメーターを true に設定します。

  3. アクションパネルを開いて、メインタイムライン内でフレーム 1 を選択し、次のコードを入力します。

    import fl.data.DataProvider; 
    import fl.events.ComponentEvent; 
     
    var items:Array = [ 
    {label:"screen1", data:"screenData1"}, 
    {label:"screen2", data:"screenData2"}, 
    {label:"screen3", data:"screenData3"}, 
    {label:"screen4", data:"screenData4"}, 
    {label:"screen5", data:"screenData5"}, 
    ]; 
    aCb.dataProvider = new DataProvider(items); 
         
    aCb.addEventListener(ComponentEvent.ENTER, onAddItem); 
     
    function onAddItem(event:ComponentEvent):void { 
        var newRow:int = 0; 
        if (event.target.text == "Add") { 
            newRow = event.target.length + 1; 
                event.target.addItemAt({label:"screen" + newRow, data:"screenData" + newRow},  
                event.target.length);  
        } 
    }
  4. 制御/ムービープレビューを選択します。

ActionScript を使用した ComboBox の作成

次の例では、ActionScript を使用して ComboBox を作成し、サンフランシスコおよびカリフォルニアの地域にある大学のリストを設定します。 ComboBox の width プロパティはプロンプトに表示するテキストの幅に合わせて設定され、 dropdownWidth プロパティは最も長い大学の名前よりも若干広く設定されます。

この例では、Array インスタンス内に大学のリストを作成します。 label プロパティを使用して学校の名前を格納し、 data プロパティを使用して各学校の Web サイトの URL を格納します。この Array は、 dataProvider プロパティを設定することで ComboBox に割り当てられます。

ユーザーがリストから大学を選択すると、Event. CHANGE イベントおよび changeHandler() 関数の呼び出しがトリガーされ、学校の Web サイトにアクセスするために data プロパティが URL 要求にロードされます。

最後の行では、リストを閉じたときにプロンプトを再表示するために、ComboBox インスタンスの selectedIndex プロパティを -1 に設定しています。この設定がないと、プロンプトは選択された学校の名前に置き換えられます。

  1. 新しい Flash (ActionScript 3.0) ドキュメントを作成します。

  2. ComboBox コンポーネントをコンポーネントパネルからライブラリパネルにドラッグします。

  3. アクションパネルを開いて、メインタイムライン内でフレーム 1 を選択し、次の ActionScript コードを入力します。

    import fl.controls.ComboBox; 
    import fl.data.DataProvider; 
    import flash.net.navigateToURL; 
     
    var sfUniversities:Array = new Array( 
        {label:"University of California, Berkeley",  
                    data:"http://www.berkeley.edu/"}, 
        {label:"University of San Francisco",  
                    data:"http://www.usfca.edu/"}, 
        {label:"San Francisco State University",  
                    data:"http://www.sfsu.edu/"}, 
        {label:"California State University, East Bay",  
                    data:"http://www.csuhayward.edu/"}, 
        {label:"Stanford University", data:"http://www.stanford.edu/"}, 
        {label:"University of Santa Clara", data:"http://www.scu.edu/"}, 
        {label:"San Jose State University", data:"http://www.sjsu.edu/"} 
    ); 
     
    var aCb:ComboBox = new ComboBox(); 
    aCb.dropdownWidth = 210; 
    aCb.width = 200;  
    aCb.move(150, 50); 
    aCb.prompt = "San Francisco Area Universities"; 
    aCb.dataProvider = new DataProvider(sfUniversities); 
    aCb.addEventListener(Event.CHANGE, changeHandler); 
     
    addChild(aCb); 
     
    function changeHandler(event:Event):void { 
        var request:URLRequest = new URLRequest(); 
        request.url = ComboBox(event.target).selectedItem.data; 
        navigateToURL(request); 
        aCb.selectedIndex = -1; 
    }
  4. 制御/ムービープレビューを選択します。

この例は Flash オーサリング環境に実装して実行できますが、ComboBox でアイテムをクリックして大学の Web サイトにアクセスしようとすると、警告メッセージが表示されます。 インターネットから ComboBox の機能に完全にアクセスするには、次の URL を参照してください。

http://www.helpexamples.com/peter/bayAreaColleges/bayAreaColleges.html