2.10 在应用中显示一个 Alert 窗口
2.10.1 问题
你希望显示一条对话信息,并根据用户选择呈现不同的内容。
2.10.2 解答
用 Alert 控件显示一条消息给用户。
2.10.3 讨论
Alert 控件提供了一个对话框,里面有按钮让用户对对话框里面显示的信息作出反馈。 Alert 控件不能用 MXML 创建,你必须用 ActionScript 。例如:
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:Button id="btn" click="showAlert(event)" label="Alert"/>
<mx:Label id="lbl"/>
<mx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.controls.Alert;
import mx.events.MenuEvent;
private function showAlert(evt:MouseEvent):void {
var alert:Alert = Alert.show("Button was clicked","Alert Window
Title",Alert.OK|Alert.CANCEL|Alert.NO|Alert.YES,this,onAlertClose);
}
private function onAlertClose(evt:CloseEvent):void {
switch(evt.detail) {
case Alert.OK:
lbl.text = "OK Clicked";
break;
case Alert.CANCEL:
lbl.text = "CANCEL Clicked";
break;
case Alert.NO:
lbl.text = "NO Clicked";
break;
case Alert.YES:
lbl.text = "YES Clicked";
break;
}
}
]]>
</mx:Script>
</mx:Application>
当用户单击 btn 按钮,示例代码用 Alert 类里的静态方法 show 创建一个 Alert 控件。 show 方法接收下列的参数来设置 Alert 控件:
text
显示给用户的消息。
title
Alert 对话框的标题。
flags
显示在对话框里的按钮。有效值是 Alert.OK, Alert.CANCEL, Alert.NO, 和 Alert.YES 。用按位 OR 操作符,可以显示多个按钮,例如 Alert.OK | Alert.CANCEL 。
parent
确定 Alert 对话框居中显示在哪个显示对象里面。
closeHandler
当在 Alert 控件上的任何按钮被单击时调用的事件处理函数。
iconClass
在 Alert 里,位于显示信息左边的图标资源类。
defaultButtonFlag
确定在 Alert 里的默认按钮。按下 Enter 键会触发默认按钮。可用的值有 Alert.OK, Alert.CANCEL, Alert.NO, Alert.YES.
onAlertClose 方法被设置为 Alert 的 closeHandle 事件处理器。这个方法接收一个 CloseEvent 对象作为参数,并使用 CloseEvent 的 detail 属性来确定哪一个按钮被单击了。