创建具有 ComboBox 组件的应用程序

以下过程解释了如何在创作时将 ComboBox 组件添加到应用程序。该 ComboBox 是可编辑的,如果您在文本字段中键入 Add,则示例会将该项添加到下拉列表中。

创建具有 ComboBox 组件的应用程序:

  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 组件,并用加利福尼亚州旧金山地区的大学列表进行填充。该示例根据提示文本的宽来设置 ComboBox 的 width 属性,并将 dropdownWidth 属性设置得稍宽一些,以容纳最长的大学名称。

该示例在 Array 实例中创建一个大学列表,使用 label 属性来存储学校名称,并使用 data 属性来存储每个学校网站的 URL。然后,通过设置 ComboBox 的 dataProvider 属性将该 Array 分配给 ComboBox。

当用户从列表中选择大学时,将触发 Event.CHANGE 事件,并调用 changeHandler() 函数,该函数将 data 属性加载到 URL 请求中,以访问学校的网站。

请注意,最后一行将 ComboBox 实例的 selectedIndex 属性设置为 -1,以便在列表关闭时重新显示提示。否则,将显示所选择的学校名称而不是提示。

使用 ActionScript 创建 ComboBox 组件:

  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 中的项来访问大学网站,则会显示警告消息。若要在 Internet 上访问功能齐全的 ComboBox,请访问以下网址:

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