2014-08-28 132 views
1

我是使用闪光灯的新手,非常抱歉,如果这是一个常见问题 - 但我找不出要搜索的内容。组合框重复选项

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

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

我想知道是否有办法阻止这种情况发生? 我的浏览器和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); 
} 

谢谢。

回答

1

您可以在Main Class中创建您的ComboBox。执行文件>新建> 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文档,这样做:文件> ActionsScript设置>类取首:Main


否则,你可以在你的ComboBox“创建标签■occurence物理上存在于使用窗口Properties阶段。

您只需在ComboBoxProperties面板中使用Component菜单。您选择属性DataProvider前面的铅笔。它会打开一个窗口Values ...

enter image description here

...在这你可以用按钮plus添加标签。

enter image description here

+0

感谢您的帮助。您的第一个建议是,组合框不再重复 - 但是,新的组合框位于左上角,并且不像前一个框那样出现在舞台上 - 所以我无法单击并将其移动到适当的位置。你知道这是为什么吗?我已经上传了一个与上面相同的链接。 – SamPassmore 2014-08-29 05:26:00

+0

@SamPassmore - 你只需要使用'move'方法:cb.move(x,y)。我用任意坐标编辑了我的答案。第二种解决方案也适用于舞台上的ComboBox。 – helloflash 2014-08-29 06:15:01

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); 
} 

当初始化事件被触发调用这个函数。 我希望我很清楚。