List コンポーネントの使用

List コンポーネントは、スクロール可能な単一選択または複数選択のリストボックスです。リストにはグラフィックや他のコンポーネントを表示することもできます。 リスト内に表示するアイテムを追加するには、label または data パラメーターフィールドをクリックすると表示される値ダイアログボックスを使用します。 また、 List.addItem() メソッドや List.addItemAt() メソッドを使用してリストにアイテムを追加することもできます。

List コンポーネントでは、0 から始まるインデックスを使用します。つまり、リストの先頭アイテムはインデックス 0 で表されます。 List クラスのメソッドとプロパティを使用してリストアイテムを追加、削除、または置換するときには、リストアイテムのインデックスを指定する必要がある場合があります。

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

リストは、ユーザーが単一アイテムのみ選択できるようにも、また複数アイテムを選択できるようにも設定できます。 例えば、ユーザーが電子商取引 Web サイトで購入したい商品を選択するとします。 リストには 30 個のアイテムがあり、ユーザーはそれをスクロールし、クリックして選択できます。

また、より詳しい情報をユーザーに提供するために、独自のムービークリップを行として使用する List を作成することもできます。 例えば、電子メールアプリケーションのメールボックスを List コンポーネントで表示する場合、重要度や状態を示すアイコンを各行に含めることができます。

List をクリックしたり、Tab キーを押したことにより List にフォーカスが移ると、次のキーを使用して List を制御できます。

キー

説明

英数字キー

ラベルの先頭文字が Key.getAscii() と一致する次のアイテムにジャンプします。

Ctrl

連続しない複数のアイテムを選択および選択解除するときに使用するトグルキーです。

下向き矢印

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

Home

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

Page Down

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

Page Up

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

Shift

連続する複数のアイテムを選択するときに使用します。

上向き矢印

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

注意: また、スクロールするサイズはピクセル単位であり、行単位ではありません。
注意: Page Up キーと Page Down キーでは、一度に表示できるアイテム数から 1 を引いた数をページのサイズとして使用します。 例えば、10 行のドロップダウンリストで Page Down キーを押すと、0 ~ 9、9 ~ 18、18 ~ 27 番目のアイテムが順に表示されます。必ず 1 つのアイテムが前後のページと重複することになります。

フォーカスの制御について詳しくは、「 Adobe Flash Professional CS5 用 ActionScript 3.0 リファレンスガイド 」の IFocusManager インターフェイスと FocusManager クラス、および FocusManager の操作 を参照してください。

ライブプレビューでは、オーサリング時にプロパティインスペクターまたはコンポーネントインスペクターでパラメーターに加えた変更が、ステージ上の各 List インスタンスに反映されます。

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

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

1 つのコンポーネントに対してアクセシビリティ機能を有効化する処理は、そのコンポーネントがインスタンスをいくつ持つかに関係なく、一度だけ実行します。 詳しくは、『Flash ユーザーガイド』の第 18 章「アクセシビリティコンテンツの作成」を参照してください。

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

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

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

次の例は、オーサリング時に List コンポーネントをアプリケーションに追加する方法を示しています。

単純な List コンポーネントのアプリケーションへの追加

この例では、自動車の車種が記載されたラベルと価格が入力されたデータフィールドでリストを構成します。

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

  2. List コンポーネントをコンポーネントパネルからステージまでドラッグします。

  3. プロパティインスペクター内で次のように設定します。

    • インスタンス名として aList と入力します。

    • 200 を W(幅)に割り当てます。

  4. テキストツールを使用して、 aList の下にテキストフィールドを作成し、インスタンス名を aTf にします。

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

    import fl.controls.List; 
    import flash.text.TextField; 
     
    aTf.type = TextFieldType.DYNAMIC; 
    aTf.border = false; 
     
    // Create these items in the Property inspector when data and label 
    // parameters are available. 
    aList.addItem({label:"1956 Chevy (Cherry Red)", data:35000}); 
    aList.addItem({label:"1966 Mustang (Classic)", data:27000}); 
    aList.addItem({label:"1976 Volvo (Xcllnt Cond)", data:17000}); 
    aList.allowMultipleSelection = true; 
     
    aList.addEventListener(Event.CHANGE, showData); 
     
    function showData(event:Event) { 
        aTf.text = "This car is priced at: $" + event.target.selectedItem.data; 
    }

    このコードでは、 addItem() メソッドを使用して aList に 3 つのアイテムを設定しています。各アイテムには、リストに表示される label 値と data 値が割り当てられます。リスト内のアイテムを選択すると、イベントリスナによって showData() 関数が呼び出され、これにより選択したアイテムの data 値が表示されます。

  6. 制御/ムービープレビューを選択し、このアプリケーションをコンパイルして実行します。

データプロバイダーを使用した List インスタンスの設定

この例では、自動車の車種と価格の List を作成します。ここではデータプロバイダーを使用して List を設定し、 addItem() メソッドは使用しません。

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

  2. List コンポーネントをコンポーネントパネルからステージまでドラッグします。

  3. プロパティインスペクター内で次のように設定します。

    • インスタンス名として aList と入力します。

    • 200 を W(幅)に割り当てます。

  4. テキストツールを使用して、 aList の下にテキストフィールドを作成し、インスタンス名を aTf にします。

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

    import fl.controls.List; 
    import fl.data.DataProvider; 
    import flash.text.TextField; 
     
    aTf.type = TextFieldType.DYNAMIC; 
    aTf.border = false; 
     
    var cars:Array = [ 
    {label:"1956 Chevy (Cherry Red)", data:35000}, 
    {label:"1966 Mustang (Classic)", data:27000}, 
    {label:"1976 Volvo (Xcllnt Cond)", data:17000}, 
    ]; 
    aList.dataProvider = new DataProvider(cars); 
    aList.allowMultipleSelection = true; 
     
    aList.addEventListener(Event.CHANGE, showData); 
     
    function showData(event:Event) { 
        aTf.text = "This car is priced at: $" + event.target.selectedItem.data; 
    }
  6. 制御/ムービープレビューを選択して、List にアイテムが追加されたことを確認します。

List コンポーネントを使用した MovieClip インスタンスの制御

次の例では、カラー名の List を作成します。いずれかのカラー名を選択すると、MovieClip にそのカラーが適用されます。

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

  2. List コンポーネントをコンポーネントパネルからステージにドラッグし、プロパティインスペクターで次の値を設定します。

    • インスタンス名として aList と入力します。

    • H 値として 60 と入力します。

    • X 値として 100 と入力します。

    • Y 値として 150 と入力します。

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

    aList.addItem({label:"Blue", data:0x0000CC}); 
    aList.addItem({label:"Green", data:0x00CC00}); 
    aList.addItem({label:"Yellow", data:0xFFFF00}); 
    aList.addItem({label:"Orange", data:0xFF6600}); 
    aList.addItem({label:"Black", data:0x000000}); 
     
    var aBox:MovieClip = new MovieClip(); 
    addChild(aBox); 
     
    aList.addEventListener(Event.CHANGE, changeHandler); 
    function changeHandler(event:Event) { 
        drawBox(aBox, event.target.selectedItem.data); 
    }; 
     
    function drawBox(box:MovieClip,color:uint):void { 
                box.graphics.beginFill(color, 1.0); 
                box.graphics.drawRect(225, 150, 100, 100); 
                box.graphics.endFill();         
    }
  4. 制御/ムービープレビューを選択して、アプリケーションを実行します。

  5. List 内のカラーをクリックし、そのカラーが MovieClip に表示されることを確認します。

ActionScript を使用した List コンポーネントインスタンスの作成

この例では、ActionScript を使用して単純な List を作成し、 addItem() メソッドを使用して入力します。

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

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

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

    import fl.controls.List; 
     
    var aList:List = new List(); 
    aList.addItem({label:"One", data:1}); 
    aList.addItem({label:"Two", data:2}); 
    aList.addItem({label:"Three", data:3}); 
    aList.addItem({label:"Four", data:4}); 
    aList.addItem({label:"Five", data:5}); 
    aList.setSize(60, 40); 
    aList.move(200,200); 
    addChild(aList); 
    aList.addEventListener(Event.CHANGE, changeHandler); 
    function changeHandler(event:Event):void { 
        trace(event.target.selectedItem.data); 
    }
  4. 制御/ムービープレビューを選択して、アプリケーションを実行します。