如何在AS3闪存中基于另一个组合框动态更改组合框值

时间:2010-06-01 05:50:15

标签: actionscript-3 combobox

我有一个xml文件,如下所示

<tree>
<branch1><node1/><node2/><node3/><branch1>
<brach2><node1/><node2/><node3/><branch1>
<branch3><node1/><node2/><node3/><branch1>
<branch4><node1/><node2/><node3/><branch1>
</tree>

我有一个填充了

的组合框
branch1
branch2
branch3

现在我希望在选择分支1时,combobox2应自动加载

node1
node2
node3

我的CUrrent代码是

for each(var element:XML in testXML.elements()) {
                    comboFar.addItem({label:element.name(),label:element.name()});

                }

1 个答案:

答案 0 :(得分:0)

您应该为combobox1分配一个事件处理程序,如:

    var myXML:XML= <tree>
                       <branch name='1'><node name='1'/><node name='2'/><node name='3'/></branch>
                       <branch name='2' ><node name='1'/><node name='2'/><node name='3'/></branch>
                       <branch name='3'><node name='1'/><node name='2'/><node name='3'/></branch>
                   </tree> // or something like this



    combobox1.addEventListener(Event.CHANGE,changeListener); 


    function changeListener(e:Event):void
    {
         populateCombobox2(myXML.branch.(@name == e.currentTarget.selectedItem.@name));
    }

    function populateCombobox2(combo2Data:XML):void
    {
        combobox2.dataSource = combo2Data;
        combobox2.displayName = "@name"; // I don't remember if this is correct, and I can't 
                                         //check it now, but this is the logic.... if its not 
                                         //correct tell me, and when I get home I can tell you 
                                         //the correct way
    }