在Flex 3中,当我使用
时Alert.show("some text");
我会收到一条警告信息和OK按钮。当我按下OK按钮时,我收到另一条警报消息。我尝试了以下代码,但它无法正常工作。
Alert.show(" Simulation for " + id_formulator.nme + " Campaign", null, mx.controls.Alert.OK, this, alertListener, null, mx.controls.Alert.OK);
private function alertListener(eventObj:Event):void {
if (eventObj.detail == mx.controls.Alert.OK) {
Alert.show("next message");
}
}
答案 0 :(得分:4)
问题是在函数alertListener中,您将参数eventObj声明为Event类型。 Event类没有详细信息字段。但是,CloseEvent子类的确如此。它也恰好是警报被关闭的事件类型。
此外,您只能在具有范围的上下文中使用this关键字。所以你需要将它包装在一个初始化函数中(而不是只是浮动在静态代码中。你需要在窗口中添加initialize="showAlerts()"
以便在窗口打开时发生它。否则,只需要替换为你的选择事件
此外,我建议使用import指令,因为它会使代码显着缩短,并且短代码更易于维护。
所以你的代码应该是:
import mx.controls.Alert;
import mx.events.CloseEvent;
private function showAlerts():void {
Alert.show("Simulation for " + id_formulator.nme + " Campaign", null, Alert.OK, this, alertListener, null, Alert.OK);
}
private function alertListener(eventObj:CloseEvent):void {
if (eventObj.detail == Alert.OK) {
Alert.show("next message");
}
}