
Код AS3:
package {
import flash.events.Event;
import flash.net.*;
public class Question {
public var id:uint;
public var authorId:uint;
private function setQuestionInfo(e:Event){
var questionXML:XML = new XML(e.target.data.result);
var question:XMLList = new XMLList(questionXML);
this.id = question.question[0].@id;
this.authorId = question.question[0].author;
}
private function getQuestionInfo(id:uint, onSuccess:Function){
var request:URLRequest = new URLRequest();
request.url = "XXXXXXXXX";
request.method = URLRequestMethod.POST;
request.data = new URLVariables("do=getQuestion&id=" + id);
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
if(onSuccess == null)
onSuccess = function() {};
loader.addEventListener(Event.COMPLETE, onSuccess);
loader.load(request);
}
public function Question(id:uint) {
getQuestionInfo(id, setQuestionInfo);
}
}
}
во фрейме пишу

Код AS3:
var q:Question = new Question(1);
trace(q.id);
получаю на выходе трейса 0, хотя должна быть единица.
если же в функции setQuestionInfo прописать trace(this.id) то все ОК.
как я понимаю результат просто не успевает записаться в переменную id.
как это исправить? поставить какую-нибудь ожидалку?