|
Med ComboBox-komponenten kan användaren göra ett enda val i en listruta. En ComboBox kan vara statisk eller redigerbar. Med en redigerbar ComboBox kan användaren ange text direkt i textfältet högst upp i listan. Om listrutan når ända ned till dokumentets nederkant öppnas den uppåt i stället för nedåt. En ComboBox består av tre underkomponenter: komponenterna BaseButton, TextInput och List.
I en redigerbar ComboBox består träffområdet enbart av – inte av textrutan. För en statisk ComboBox består träffområdet av både knappen och textrutan. Träffområdet svarar genom att öppna eller stänga listrutan.
När användaren markerar något i listan, med musen eller via tangentbordet, kopieras markeringens etikett till textfältet högst upp ComboBoxen.
Använda ComboBox-komponenten
Du kan använda ComboBox-komponenter i formulär och program där användaren behöver göra ett enda val i en lista. Du kan till exempel skapa en listruta för länder i ett formulär för kundadresser. En redigerbar ComboBox används för mer komplexa scenarier. I ett program som ger köranvisningar kan du till exempel använda en redigerbar ComboBox där användaren kan ange den ursprungliga adressen och destinationsadressen. Listrutan innehåller de adresser som användaren har angett tidigare.
Om ComboBoxen är redigerbar, det vill säga att egenskapen
editable
är
true
, tar följande tangenter bort fokus från textinmatningsrutan och låter det föregående värdet stå kvar. Undantaget är Enter-tangenten, som använder det nya värdet först om användaren anger text.
|
Nyckel
|
Beskrivning
|
|
Skift + tabbtangent
|
Flyttar fokus till föregående objekt. Om ett nytt objekt markeras, skickas en ny
change
-händelse.
|
|
Tabb
|
Flyttar fokus till nästa objekt. Om ett nytt objekt markeras, skickas en ny
change
-händelse.
|
|
Nedpilen
|
Flyttar markeringen ett objekt nedåt.
|
|
End
|
Flyttar markeringen längst ned i listan.
|
|
Escape
|
Stänger listrutan och returnerar fokus till ComboBox.
|
|
Enter
|
Stänger listrutan och returnerar fokus till ComboBox. När ComboBox är redigerbar och användaren anger text, gör Retur att värdet får den angivna texten.
|
|
Hem
|
Flyttar markeringen högst upp i listan.
|
|
Page Up
|
Flyttar markeringen en sida uppåt.
|
|
Page Down
|
Flyttar markeringen en sida nedåt.
|
När du lägger till ComboBox-komponenten i ett program kan du göra den åtkomlig för en skärmläsare genom att lägga till följande rader med ActionScript-kod:
import fl.accessibility.ComboBoxAccImpl;
ComboBoxAccImpl.enableAccessibility();
Du aktiverar bara en komponents åtkomlighet en gång, oavsett hur många förekomster du har av komponenten.
ComboBox-komponentparametrar
Du kan ställa in följande utvecklingsparametrar i egenskapsinspektören eller komponentinspektören för varje förekomst av ComboBox-komponenten:
dataProvider
,
editable
,
prompt
och
rowCount
. Var och en av de här parametrarna har en motsvarande ActionScript-egenskap med samma namn. Information om möjliga värden på de här parametrarna finns i ComboBox-klassen i
Referenshandbok för ActionScript 3.0
i Adobe Flash Professional
. Information om hur du använder parametern dataProvider finns i
Använda parametern DataProvider
.
Skapa ett program med komponenten ComboBox
I proceduren nedan beskrivs hur du lägger till en ComboBox-komponent i ett program när du redigerar. ComboBox är redigerbar, och om du skriver
Lägg till
i textfältet lägger exemplet till ett objekt i listrutan.
-
Skapa ett nytt Flash-dokument (ActionScript 3.0).
-
Dra en ComboBox till scenen och ge den förekomstnamnet
aCb
. På fliken Parametrar ger du parametern
editable
värdet
true
.
-
Öppna åtgärdspanelen, markera bildruta 1 i huvudtidslinjen och ange följande 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);
}
}
-
Välj Kontroll > Testa filmen.
Skapa en ComboBox med ActionScript
Följande exempel skapar en ComboBox med ActionScript och fyller i den med en lista med universitet i San Francisco, Kalifornien. Egenskapen
width
för ComboBoxen ställs in så att den passar prompttextens bredd och egenskapen
dropdownWidth
ställs in så att den är lite bredare, för att få plats med det längsta universitetsnamnet.
Listan med universitet skapas i en Array-förekomst, där egenskapen
label
används för att lagra universitetsnamnen och egenskapen
data
för att lagra URL:er till universitetens webbplatser. Arrayen tilldelas ComboBox genom att dess
dataProvider
-egenskap ställs in.
När en användare väljer ett universitet från listan aktiveras en Event.
CHANGE
-händelse och ett anrop till funktionen
changeHandler()
, som läser in egenskapen
data
i en URL-begäran för att komma åt universitetets webbplats.
Observera att den sista raden ställer in ComboBox-förekomstens
selectedIndex
-egenskap till –1 för att prompten ska visas igen när listan stängs. Annars skulle prompten bytas ut mot namnet på universitetet som markerades.
-
Skapa ett nytt Flash-dokument (ActionScript 3.0).
-
Dra ComboBox-komponenten från panelen Komponenter till bibliotekspanelen.
-
Öppna åtgärdspanelen, markera bildruta 1 i huvudtidslinjen och ange följande ActionScript-kod:
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;
}
-
Välj Kontroll > Testa filmen.
Du kan implementera och köra det här exemplet i Flash-utvecklingsmiljön, men du får varningsmeddelanden om du försöker komma åt universitetens webbplatser genom att klicka på objekt i ComboBoxen. Om du vill komma åt den fungerande ComboBoxen på Internet går du till följande webbplats:
http://www.helpexamples.com/peter/bayAreaColleges/bayAreaColleges.html
|
|
|