如何在Flex中的Alert中更改文本

时间:2012-03-23 14:26:44

标签: flex timer alert

我想更改Alert on timer tick中的文本,但没有任何变化,请参阅下面的示例:

private var alert:Alert;
private var timer:Timer = new Timer(1000, 0);

private function init(){
   timer.addEventListener(TimerEvent.TIMER, onTimerTick);
   timer.start();
   alert = Alert.show("Logout in "+ 60 +" seconds","",3);
}       

private function onTimerTick(event:TimerEvent):void{
   alert.text = "Logout in "+(60-timer.currentCount)+" seconds";
}

P.S。标题被这种方式所覆盖。

提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:1)

private var uiText:UITextField;

private function init():void{
    timer.addEventListener(TimerEvent.TIMER, onTimerTick);
    timer.start();
    alert = Alert.show("Logout in "+ 60 +" seconds","",3);
    var child:DisplayObjectContainer = alert.getChildAt(0) as DisplayObjectContainer;
    uiText = child.getChildAt(0) as UITextField;
    uiText.text;

}       

private function onTimerTick(event:TimerEvent):void{
    (timer.currentCount > 60) ? [timer.stop(), alert.parent.removeChild(alert)] : void;
    uiText.text = "Logout in "+(60-timer.currentCount).toString()+" seconds";
}

这样的事情会有所帮助。

答案 1 :(得分:1)

好吧,所以这很难看。

alert.mx_internal::alertForm.mx_internal::textField.text = "...";

让您更新文字。它不漂亮,但它的工作原理。