组合框重复选项

时间:2014-08-28 02:08:49

标签: actionscript-3 flash combobox

我是新手使用闪光灯,很抱歉,如果这是一个常见的问题 - 但我无法弄清楚要搜索什么。

我创建了一个非常基本的电影 - 它使用一个组合框在一些图像之间切换。 See Here

问题是当您单击第一个选项(“性别”)到另一个选项然后返回到Gender时,组合框中的选项列表会重复。

我想知道是否有办法阻止这种情况发生? 我在浏览器和Flash Professional CS5.5中都遇到此问题

我目前的动作代码是;

import flash.events.Event;

stop(); 

combobox.addItem( { label: "Gender" } );
combobox.addItem( { label: "Ethnicity" } );
combobox.addItem( { label: "Religion" } );

combobox.addEventListener(Event.CHANGE, changeimage);

function changeimage (event:Event):void{
    if (combobox.selectedItem.label == "Gender") gotoAndStop(1);
    if (combobox.selectedItem.label == "Ethnicity") gotoAndStop(2);
    if (combobox.selectedItem.label == "Religion") gotoAndStop(3);
}

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在ComboBox中创建Main Class。做文件>新> ActionScript文件,并将以下代码复制/粘贴到此新文件中。将其命名为:Main

<强> Main.as

package 
{
    import flash.display.MovieClip;
    import flash.events.Event;
    import fl.controls.ComboBox;

    public class Main extends MovieClip
    {
        private var cb:ComboBox;

        public function Main()
        {
            cb = new ComboBox();
            cb.addItem({label:'Gender', data:1});
            cb.addItem({label:'Ethnicity', data:2});
            cb.addItem({label:'Religion', data:3});
            cb.move(120, 160);
            cb.addEventListener(Event.CHANGE, labelSelected);
            addChild(cb);
        }
        private function labelSelected(e:Event):void
        {
            gotoAndStop(cb.selectedItem.data);
        }
    }
}

在您的Flash文档中,执行:文件&gt; ActionsScript设置&gt; Documment Class:Main


否则,您可以使用ComboBox窗口在Properties出现在舞台上的标签中创建标签。

您只需使用Component Properties面板中的ComboBox菜单即可。您可以选择属性DataProvider前面的铅笔。它将打开一个窗口Values ...

enter image description here

...您可以使用按钮plus添加标签。

enter image description here

答案 1 :(得分:0)

您可以将addItem封装在一个函数中:

import flash.events.Event;

stop(); 
function initializeComboBox(){
    combobox.addItem( { label: "Gender" } );
    combobox.addItem( { label: "Ethnicity" } );
    combobox.addItem( { label: "Religion" } );

    combobox.addEventListener(Event.CHANGE, changeimage);
}

function changeimage (event:Event):void{
    if (combobox.selectedItem.label == "Gender") gotoAndStop(1);
    if (combobox.selectedItem.label == "Ethnicity") gotoAndStop(2);
    if (combobox.selectedItem.label == "Religion") gotoAndStop(3);
}

在触发initialize事件时调用此函数。 我希望我足够清楚。