Flex Combobox奇怪的问题

时间:2009-06-23 10:57:59

标签: flex actionscript-3 combobox

我在Flex中使用组合框面临一个奇怪的问题。在以下代码中:

    public function rollCombo(cmb:ComboBox,value:String):void
    {
            if(value=='') return;
            var i:int=0;
            cmb.selectedIndex = 0;
            var dp1:XMLListCollection =   (XMLListCollection(cmb.dataProvider);
            trace(value);
            while(dp1[i]!=value && i<dp1.length)
              cmb.selectedIndex = ++i;
              cmb.validateNow();
              cmb.validateDisplayList();

            trace(cmb.selectedLabel);
    }

在示例中,在函数执行结束时,i为7,并且 cmb.selectedLabel是“xyz”(根据跟踪输出),但显示标签 在组合框中是不同的。

此外,这是不可预测的。它有时会发生,而不是总是发生。

1 个答案:

答案 0 :(得分:2)

最后的selectedIndex超出范围,因为您使用了预增量。这意味着我在测试之前变成dp1.length,并且它也被分配给selectedIndex。这可能解释了奇怪的行为。你可能想要使用后增量。

另外。在那段时间内执行的唯一事情就是

cmb.selectedIndex = ++i;

我不知道这是不是你想要的,但你可能需要一些“{}”。