在Flex 3中使用Alert.show

时间:2010-07-12 09:35:39

标签: flex flex3

在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");
    }
}

1 个答案:

答案 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");
    }
}