我需要在用户在下拉列表中选择某个选项后显示警告对话框。
这是flex(flash builder 4.6)中的一个简单下拉列表,它打开一个警告对话框。当我这样做时,下拉列表被“卡住”,这意味着在选择选项后,通常下拉列表会关闭,但是当我显示警报时,它会保持打开状态,您必须再次单击选项关闭它。
下拉列表mxml:
<s:DropDownList id="typeEventDropDownList"
change="typeEventDropDownList_changeHandler(event)"
selectedIndex="0">
<s:layout>
<s:VerticalLayout requestedRowCount="10"/>
</s:layout>
<s:dataProvider>
<s:ArrayList source="[ChooseAction,a,b,c,d,e,f,g,h,i]" />
</s:dataProvider>
</s:DropDownList>
下拉列表处理程序:
protected function typeEventDropDownList_changeHandler(event:IndexChangeEvent):void
{
// if this alert is called, the drop down list 'sticks' open. if the alert is removed, it closes normally
Alert.show("bla bla bla", "Warning",mx.controls.Alert.OK , this, null); // does not matter if a method is called from here
}
我已经在警告对话框之前和之后尝试了一些使用closeDropDown(甚至调用OpenDropDown)的组合,这似乎没什么区别:
typeEventDropDownList.openDropDown(); //have tried opening and closing, closing only, before and after alert - no difference
typeEventDropDownList.closeDropDown(true); // have tried true and false no difference
答案 0 :(得分:1)
您可以使用
protected function typeEventDropDownList_changeHandler(event:IndexChangeEvent):void
{
callLater(DisplayAlert);
}
protected function DisplayAlert()
{
//Display your alert here , i.e., Alert.show()
}
这对我有用。
答案 1 :(得分:0)
你把关闭列表代码放在哪里?这应该有效:
protected function typeEventDropDownList_changeHandler(event:IndexChangeEvent):void
{
typeEventDropDownList.closeDropDown(true);
Alert.show("bla bla bla", "Warning",mx.controls.Alert.OK , this, null);
}