|
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.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik ComboBox na stół montażowy i nadaj instancji nazwę
aCb
. Na karcie Parametry ustaw parametr
editable
na wartość
true
.
-
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);
}
}
-
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.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik ComboBox z panelu Składniki do panelu Biblioteka.
-
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;
}
-
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
|
|
|