0
我試着寫一個類,它會返回給我一個給定字符串的json對象。我知道下面的代碼的語法是完全錯誤的,但只是試圖做到這一點。如何使一個事件監聽器函數返回一個值?如何跟蹤lisener函數的響應?
package com
{
import flash.display.MovieClip;
import com.adobe.*;
import com.adobe.serialization.json.JSON;
import flash.net.dns.AAAARecord;
import flash.net.URLRequest;
import flash.events.Event;
public class getJson extends MovieClip
{
public function getJson(urlString:String):Object
{
// constructor code
var returnObject:Object = new Object();
var urlLoader:URLLoader = new URLLoader();
returnObject=urlLoader.addEventListener(Event.COMPLETE,loadingComplete);
urlLoader.load(new URLRequest(urlString));
return returnObject;
}
private function loadingcomplete(e:Event):Object
{
var jsonObject:Object = new Object();
jsonObject=JSON.decode(urlString);
return jsonObject;
}
}
}
這是行不通的。 'addEventListener'不返回任何東西,所以'returnObject'是'void',而不是'Object'。你究竟想要做什麼?事件不像你認爲的那樣工作。它們是異步的,所以沒有什麼可以返回數據。如果您想讓我們確切知道您想要達到的目標(您現在非常模糊),我們可能會指出您的方向正確。目前,有一點我們可以幫助 –
@ Josh Janusch我需要通過URL並獲得約50個jsons。如果我可以發送和反饋一個接一個,可以根據需要輕鬆分類。現在的問題是,當我向Facebook發送約50個json請求時,當監聽器函數將獲取json並將其存儲在數組中時不知道。如果我從json load listener函數得到適當的反饋,我可以毫不拖延地處理和顯示結果。希望你有這個問題... – Sheik
什麼是「正確的反饋」? Event.COMPLETE事件*是反饋。您不能在事件處理程序上返回任何內容,因爲沒有任何內容可以返回*到*。你想要的東西根本不可能。但是,您試圖達到的是Event系統的意義。 –