ComboBox 구성 요소 사용

ComboBox 구성 요소를 사용하면 사용자가 드롭다운 목록에서 한 항목을 선택할 수 있습니다. ComboBox는 정적일 수도 있고 편집 가능할 수도 있습니다. 편집 가능한 ComboBox를 사용하면 사용자가 목록 위에 있는 텍스트 필드에 직접 텍스트를 입력할 수 있습니다. 드롭 다운 목록이 너무 길어서 아래쪽으로 표시될 수 없으면 위로 열립니다. ComboBox는 BaseButton, TextInput 및 List 구성 요소의 하위 구성 요소로 이루어집니다.

편집 가능한 ComboBox에서는 버튼만 히트 영역이고 텍스트 상자는 히트 영역이 아닙니다. 정적 ComboBox에서는 버튼과 텍스트 상자가 히트 영역입니다. 히트 영역은 드롭 다운 목록을 열거나 닫아서 응답합니다.

사용자가 마우스나 키보드를 사용하여 목록에서 선택을 하면 선택 항목의 레이블이 ComboBox 맨 위에 있는 텍스트 필드에 복사됩니다.

ComboBox 구성 요소와 사용자의 상호 작용

목록에서 한 항목만 선택해야 하는 양식이나 응용 프로그램에서는 ComboBox 구성 요소를 사용합니다. 예를 들어, 고객 주소 양식에는 지역을 표시하는 드롭 다운 목록을 사용할 수 있습니다. 복잡한 시나리오에서는 편집 가능한 ComboBox를 사용합니다. 예를 들어, 운전 방향을 알려 주는 응용 프로그램에는 사용자가 출발지와 목적지 주소를 입력할 수 있게 편집 가능한 ComboBox를 사용할 수 있습니다. 드롭 다운 목록에는 이전에 사용자가 입력한 주소가 표시됩니다.

ComboBox를 편집할 수 있는 경우, 즉 editable 속성이 true 로 설정되어 있는 경우에는 다음 키를 사용하여 텍스트 입력 상자의 포커스를 제거하고 이전 값을 유지할 수 있습니다. 사용자가 텍스트를 입력한 경우 새 값을 먼저 적용하는 Enter 키는 예외입니다.

설명

Shift+Tab

이전 항목으로 포커스를 이동합니다. 새 항목이 선택된 경우에는 change 이벤트가 전달됩니다.

다음 항목으로 포커스를 이동합니다. 새 항목이 선택된 경우에는 change 이벤트가 전달됩니다.

아래쪽 화살표

선택이 한 항목 아래로 이동합니다.

End

목록의 아래쪽으로 이동합니다.

Escape

드롭 다운 목록을 닫고 ComboBox로 포커스를 되돌립니다.

Enter

드롭 다운 목록을 닫고 ComboBox로 포커스를 되돌립니다. ComboBox를 편집할 수 있는 경우 사용자가 텍스트를 입력하고 Enter 키를 누르면 해당 값이 입력한 텍스트로 설정됩니다.

선택이 목록 맨 위로 이동합니다.

Page Up

선택이 한 페이지 위로 이동합니다.

Page Down

선택이 한 페이지 아래로 이동합니다.

응용 프로그램에 ComboBox 구성 요소를 추가할 때 다음 ActionScript 코드를 추가하여 화면 판독기에서 해당 구성 요소에 액세스할 수 있게 만들 수 있습니다.

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

구성 요소의 인스턴스 수에 관계없이 구성 요소의 액세스 가능성을 한 번만 활성화하면 됩니다.

ComboBox 구성 요소 매개 변수

속성 관리자나 구성 요소 관리자에서 각 ComboBox 인스턴스에 대해 dataProvider , editable , prompt , rowCount 등의 매개 변수를 설정할 수 있습니다. 이러한 매개 변수에는 각각 같은 이름의 해당 ActionScript 속성이 있습니다. 이러한 매개 변수의 가능한 값에 대한 자세한 내용은 ActionScript 3.0 Reference for Flash Professional 에서 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 속성을 가장 긴 대학 이름보다 약간 넓게 설정합니다.

이 예제에서는 학교 이름을 저장하는 데 label 속성을, 학교의 웹 사이트 URL을 저장하는 데 data 속성을 사용하여 Array 인스턴스에 대학 목록을 만듭니다. 그런 다음 ComboBox의 dataProvider 속성을 설정하여 ComboBox에 Array를 지정합니다.

사용자가 목록에서 대학을 선택하면 Event. CHANGE 이벤트가 트리거되고 changeHandler() 함수가 호출되어 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에서 항목을 클릭하여 대학 웹 사이트에 액세스하려고 하면 경고 메시지가 나타납니다. 인터넷에서 기능을 제대로 갖춘 ComboBox에 액세스하려면 다음 위치에 액세스하십시오.

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