当我按下提醒框的 * ok 按钮时,我希望 txtOther.textbox 成为焦点。 这里txtbox在显示警告框时被聚焦,如果按下文本框的ok按钮, txtOther.textbox 不在焦点上。 请帮帮我......
MXML SCRIPT:
<mx:Canvas id ="parentCanvas1" label="General" >
<mx:VBox id="parentBox1">
<mx:Canvas id="cvsGeneral">
<mx:TextInput id="txtOther" focusOut="txtOther_Validate();"/>
</mx:Canvas>
</mx:VBox>
</mx:Canvas>
<mx:Canvas id="parentCanvas2" >
<mx:HBox id="parentBox2" >
<mx:Button label="Save" id="btnSave" click="txtOther_Validate();" />
</mx:HBox>
</mx:Canvas>
////////////Action script////////////////////
public function txtOther_Validate(): void {
// here lets assume that the result variable is stored as "FAILURE"
if(result == "FAILURE"){
Alert.show("Please enter a valid Format Mask.");
txtOther.setFocus(); //
}
}
这里即使显示警告框,也会设置txtother.textbox的焦点..但是在按下警告的确定按钮后,未设置TxtOther.text框的焦点..所以这里我想要按下警告窗口的“确定”按钮后触发焦点事件,而不是之前......怎么做......
请帮助我。 提前谢谢..
答案 0 :(得分:1)
调用Alert.show()时,将返回的Alert实例存储在变量中。在该变量上,设置一个将侦听自定义事件的事件侦听器。该事件的处理程序的目的是将焦点设置为txtOther
以下是一些代码段:
private var alert:Alert = Alert.show(blah);
alert.addEventListener(mx.events.FlexEvent.REMOVE, removeHandler, false, 0, true);
private function removeHandler(event:FlexEvent):void
{
txtOther.setFocus();
}
答案 1 :(得分:0)
而不是正常的警报,我把这个警告放在这个
Alert.show("Please enter a valid Format Mask.", "Validation Error", Alert.OK, this, alrt_close);
然后我通过
处理警报事件private function alrt_close(evt:CloseEvent):void {
txtOther.setFocus();
这对我有用。