AS3 comboBox是空的吗?

时间:2012-02-29 02:14:36

标签: actionscript-3

我有一个onChange事件,我想测试一个comboBox是否为空,如果是,我想改变comboBox的颜色。我可以找到一个值,例如“Fred Bloggs”但没有测试它是否为空:

if (e.target.selectedItem.label == ""){ // This doesn't work
      trace("EMPTY");
my_color.color = 0x002222;
instructorList.transform.colorTransform = my_color;
}

2 个答案:

答案 0 :(得分:1)

如果未选择任何项目, selectedItem 属性将为null:

comboBox.addEventListener(MouseEvent.CLICK, mouseHandler);

function mouseHandler(e:MouseEvent) {
    if (e.currentTarget.selectedItem == null){ // This doesn't work
        trace("EMPTY");
        my_color.color = 0x002222;
        instructorList.transform.colorTransform = my_color;
    }
}

请注意,如果ComboBox中没有项目,则不会触发 CHANGE 事件,因为无法将其“更改”为任何内容。而是将此测试添加到 CLICK 处理程序。

更新:根据以下评论中的新信息,只需测试索引是否与列表顶部的空白项匹配。

    if (e.currentTarget.selectedIndex == 0) {
        trace("EMPTY");
        my_color.color = 0x002222;
        instructorList.transform.colorTransform = my_color;
    }

答案 1 :(得分:0)

仅当用户启动更改时才会调度弹性变更事件。如果更改是用户启动的,则不会为null。如果要查找null,请尝试使用valueCommit属性/事件。