Есть вот такая функция, которая читает некоторые данные. Как сделать так, что бы она возвращала результат? В таком виде она возвращает null. Хотя внутри подфункции onDataLoad переменная существует. Вот как ее передать основной функции?

Код:
private function GetUserInfo():String {
var user_ip:String;
var myLoader:URLLoader = new URLLoader();
myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
var myRequest:URLRequest = new URLRequest("http://www.site.ru/get_user_info.php?rand="+String(Math.random()));
myRequest.method = "GET";
myLoader.load(myRequest);
myLoader.addEventListener(Event.COMPLETE, onDataLoad);
myLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
myLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
myLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus);
function onDataLoad(evt:Event){
user_ip = evt.target.data["user_ip"];
}
function onIOError(evt:IOErrorEvent){
trace("IOError: "+evt.text)
}
function onHTTPStatus(evt:HTTPStatusEvent){
trace("HTTPStatus: "+evt.status)
}
function onSecurityError(evt:SecurityErrorEvent){
trace("SecurityError: "+evt.text)
}
return(user_ip);
}