Korzystanie ze składnika ComboBox

Składnik ComboBox umożliwia wybranie pojedynczej pozycji z listy rozwijanej. ComboBox może być składnikiem statycznym lub edytowalnym. Edytowalny składnik ComboBox umożliwia bezpośrednie wprowadzanie tekstu do pola tekstowego na górze listy. Jeśli możliwe jest zetknięcie się listy rozwijanej z dolną częścią dokumentu, zostanie ona rozwinięta w górę, zamiast w dół. Składnik ComboBox jest zbudowany z trzech składników podrzędnych: BaseButton, TextInput i List.

Jeśli ComboBox jest składnikiem edytowalnym, obszarem klikania jest tylko przycisk — nie pole tekstowe. Dla statycznego składnika ComboBox obszar klikania stanowi przycisk i pole tekstowe. W odpowiedzi na naciśnięcie obszaru klikania składnika lista rozwijana jest otwierana lub zamykana.

Po dokonaniu wyboru na liście za pomocą myszy lub klawiatury etykieta zaznaczenia kopiowana jest do pola tekstowego u góry składnika ComboBox.

Posługiwanie się składnikiem ComboBox

Składnika ComboBox można użyć w dowolnym formularzu lub aplikacji, która wymaga pojedynczego wyboru z listy opcji. Na przykład można udostępnić rozwijaną listę województw w formularzu adresu klienta. Edytowalnego składnika ComboBox można użyć dla bardziej złożonych scenariuszy. Na przykład w aplikacji, która podaje kierunki jazdy, można użyć edytowalnego składnika ComboBox, aby umożliwić użytkownikowi wprowadzenie adresu początkowego i docelowego. Lista rozwijana zawierać będzie poprzednio wprowadzone adresy.

Jeśli składnik ComboBox jest edytowalny, właściwość editable ma wartość true , poniższe klawisze usuwają aktywność z wejściowego pola tekstowego i pozostawiają w nim poprzednią wartość. Wyjątek stanowi klawisz Enter, który najpierw stosuje nową wartość, jeśli użytkownik wprowadził tekst.

Klucz

Opis

Shift+Tab

Przesuwa aktywność do poprzedniej pozycji. Jeśli zaznaczona zostanie nowa pozycja, wywołane zostanie zdarzenie change .

Karta

Przesuwa aktywność do kolejnej pozycji. Jeśli zaznaczona zostanie nowa pozycja, wywołane zostanie zdarzenie change .

Strzałka w dół

Przesuwa zaznaczenie w dół o jedną pozycję.

End

Przesuwa zaznaczenie w dół listy.

Esc

Zamyka listę rozwijaną i zwraca aktywność do składnika ComboBox.

Enter

Zamyka listę rozwijaną i zwraca aktywność do składnika ComboBox. Jeśli składnik ComboBox jest edytowalny, a użytkownik wprowadzi tekst, naciśnięcie klawisza Enter ustawi w składniku wartość wprowadzonego tekstu.

Home

Przesuwa zaznaczenie na górę listy.

Page Up

Przesuwa zaznaczenie w górę o jedną stronę.

Page Down

Przesuwa zaznaczenie w dół o jedną stronę.

Po dodaniu składnika ComboBox do aplikacji można go udostępnić dla czytnika ekranu, dodając do kodu ActionScript następujące wiersze:

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

Ułatwienia dostępu włącza się dla danej klasy składników tylko raz, niezależnie od liczby posiadanych instancji.

Parametry składnika ComboBox

W Inspektorze właściwości lub w Inspektorze składników można ustawić następujące parametry tworzenia dla każdej instancji składnika: dataProvider , editable , prompt oraz rowCount . Każdy z parametrów posiada odpowiadającą mu właściwość ActionScript o tej samej nazwie. Więcej informacji na temat możliwych wartości tych parametrów zawiera opis klasy ComboBox w Skorowidzu języka ActionScript 3.0 dla programu Flash Professional . Informacje o używaniu parametru dataProvider zawiera sekcja Korzystanie z parametru dataProvider .

Tworzenie aplikacji ze składnikiem ComboBox

Poniższa procedura opisuje jak podczas tworzenia dodać składnik ComboBox do aplikacji. Składnik ComboBox jest edytowalny, dlatego jeśli do pola tekstowego wpisana zostanie wartość Add , do listy rozwijanej w przykładzie dodana zostanie pozycja.

  1. Utwórz nowy dokument Flash (ActionScript 3.0).

  2. Przeciągnij składnik ComboBox na stół montażowy i nadaj instancji nazwę aCb . Na karcie Parametry ustaw parametr editable na wartość true .

  3. Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod:

    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. Wybierz polecenie Sterowanie > Testuj film.

Tworzenie składnika ComboBox przy użyciu kodu ActionScript

W poniższym przykładzie z użyciem kodu ActionScript tworzony jest składnik ComboBox i wypełniany jest listą uniwersytetów z obszaru stanu San Francisco i Kalifornia. Właściwość width składnika ComboBox dopasowywana jest do szerokości tekstu monitu, a właściwość dropdownWidth jest nieznacznie poszerzana w celu dopasowania do najdłuższej nazwy uniwersytetu.

Lista uniwersytetów w przykładzie tworzona jest w instancji Array z użyciem właściwości label w celu zapisania nazw szkół i właściwości data do zapisania adresów URL stron sieci Web dla każdej z uczelni. Instancja Array przypisywana jest do składnika ComboBox przez ustawienie właściwości dataProvider .

Po wybraniu z listy uniwersytetu wywoływane jest zdarzenie Event.Zdarzenie CHANGE oraz funkcja changeHandler() , która ładuje do żądania URL właściwość data w celu uzyskania dostępu do strony sieci Web.

Należy zauważyć, że ostatni wiersz instancji ComboBox ustawia właściwość selectedIndex na wartość -1 w celu ponownego wyświetlenia monitu po zamknięciu listy. W innym wypadku monit zostanie zastąpiony nazwą wybranej uczelni.

  1. Utwórz nowy dokument Flash (ActionScript 3.0).

  2. Przeciągnij składnik ComboBox z panelu Składniki do panelu Biblioteka.

  3. Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod 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. Wybierz polecenie Sterowanie > Testuj film.

Przykład można zaimplementować i uruchomić w środowisku tworzenia programu Flash, jednak przy próbie dostępu do stron sieci Web uczelni, przez kliknięcie pozycji w składniku ComboBox, wyświetlone zostaną ostrzeżenia. Aby uzyskać dostęp do składnika ComboBox w pełni funkcjonalnego w Internecie, należy odwiedzić następującą stronę:

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