PDA

Просмотр полной версии : Асинхронный return


Bruiser
29.05.2008, 14:34
Создаю класс User, который, имея поля login и password, проверяет на серверной стороне, можно ли залогинится с таким логином и паролем, а в этом классе нужна функция, который возращал бы Boolean. Как это можно реализовать?

package comstar.controltarification.core
{
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;

import mx.controls.Alert;


public class User{
private var FLAG:Boolean = false;

public var login:String;
public var password:String;


private var myXML:XML = new XML();
private var XML_URL:String = Global.URL_SERVLET;
private var urlReq:URLRequest = null;
private var myLoader:URLLoader = null;

public function loginUser():Boolean{
//Здесь необходимо вернуть true, если залогинимся, и наоборот
return false;
}
//----------------------------------------------------------------------------------------------//
private function getLogin():void{
var act:String = "http://localhost:8080/Servlet?action=loginUser&user="+login+"&password="+password;
urlReq = new URLRequest(XML_URL+act);
myLoader = new URLLoader(urlReq);
myLoader.addEventListener(Event.COMPLETE,getLoginOk); myLoader.addEventListener(IOErrorEvent.IO_ERROR,getLoginFault);
myLoader.load(urlReq);
}

private function getLoginOk(event:Event):void{
myXML = XML(myLoader.data);
if (myXML.child("error"). length()>0){
FLAG = true;
}else{
FLAG = false;
}
}
private function getLoginFault(event:IOErrorEvent):void{
FLAG = false;
}
//----------------------------------------------------------------------------------------------//
}
}

Molecula
29.05.2008, 16:47
Ну у Вас же может после Event.COMPLETE прийти переменная от сервера какая-нибудь, вроде 0 или 1.
Потом обращаемся из вне к сеттерам и геттерам, и получаем значение булевой переменной.

Bruiser
29.05.2008, 17:03
У меня тот метод loginUser должен вернуть true или false.
т.е. извне я хочу обращаться так

var user:User = new User("test","test");
if (user.loginUser()){
Alert("Пароль верен");
}else{
Alert("Пароль не верен");
}