我正在尝试从jsp页面加载数据。该数据用于更进一步的操作。 这是我的代码,其中questionBankSize和questionBank是全局变量
public function initialiseQuestionBank():void
{
questionBankSize = 20;
loadQuestion();
trace(questionBankSize+"");
}
这是我从jsp页面加载数据的代码
private function loadQuestion() {
var url:String = "http://localhost:8084/JspPages/JsonJsp.jsp";
var request:URLRequest = new URLRequest(url);
var requestVars:URLVariables = new URLVariables();
requestVars.topic_id = 1;
request.data = requestVars;
request.method = URLRequestMethod.POST;
var urlLoader:URLLoader = new URLLoader();
urlLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, loaderCompleteHandler, false, 1, true);
try {
urlLoader.load(request);
} catch (e:Error) {
trace(e);
}
}
private function loaderCompleteHandler(e:Event):void {
var ldr:URLLoader = URLLoader(e.target);
var responseVars:String = ldr.data;
var arr:Array = (JSON.decode(responseVars) as Array);
trace(arr[i]['clue']);
questionBankSize = arr.length;
questionBank = new Vector.<String>(questionBankSize);
for (var i:int = 0; i < questionBankSize; i++ ) {
questionBank[i] = arr[i]['clue'] + "$" + arr[i]['word'];
}
trace(questionBank[0]);
load = 1;
}
initialiseQuestionBank()函数中的trace语句在事件处理程序中的trace语句之前执行。如何先完成事件处理程序的执行,然后执行下一个语句?
答案 0 :(得分:0)
您需要将问题库加载器封装到扩展Event的对象中。
这样您就可以发送自己的自定义事件。
在构造函数中,您将调用loadQuestion方法,向其传递一个回调函数,该函数将执行在加载questionbank之后要运行的任何代码。这样,您将同时运行事件,并在发出加载结束信号后立即调用代码。