首页 > 解决方案 > Actionscript 3.0:如何在主窗口和弹出窗口之间进行通信,直到主窗口获得服务器登录响应

问题描述

我们正在一个项目中工作,我们正在设计动作脚本 3.0 中的 GUI。

登录屏幕将与 opensso 服务器进行 http 调用以进行身份​​验证,如果登录失败,则应显示错误弹出窗口。

现在的问题是,有时身份验证需要很长时间,最终用户不知道情况。所以他再次点击登录按钮。所以客户端想要另一个弹出窗口,它应该只显示等待,直到服务器发送登录响应。

这是我们的 ssoAuthenticate 方法 -

private function ssoAuthenticate():void
{
    var loaderUrl:String = FlexGlobals.topLevelApplication.loaderInfo.url;
    var myLoadBaseUrl:LoadBaseUrl = new LoadBaseUrl();
    var ssoBaseUrl:String = myLoadBaseUrl.getSSOUrl();
        
    var url:String = ssoBaseUrl.concat("opensso/json/authenticate");
    var srv:HTTPService = new HTTPService();
    srv.url = url;
    srv.method = "POST";
    srv.contentType = "application/json";
    srv.headers ={
        "X-OpenAM-Username": userName,
        "X-OpenAM-Password": password,
        "Content-Type": "application/json"
    }
    var data:Object = new Object();
    srv.resultFormat = "e4x";
    srv.addEventListener(ResultEvent.RESULT, authenticateSuccess);
    srv.addEventListener(FaultEvent.FAULT, authenticateFailed);         
    srv.send("{}");
}

我们怎样才能做到这一点?我们如何在这段代码中引入另一个 WAIT 弹出窗口?每当事件ResultEvent.RESULT从服务器返回时,该弹出窗口应该消失。

任何指针将不胜感激。谢谢

标签: authenticationactionscript-3popup

解决方案


当您的用户单击登录按钮调用login.removeEventListerner(MouseEvent.CLICK,ssoAuthenticate)直到ResultEvent.RESULT从您的服务器返回时,也为了更好的用户体验,您可以显示加载程序影片剪辑或进度对话框,如 https://docs.airnativeextensions.com/docs/dialog/progress -对话


推荐阅读