0
我已經在谷歌搜索不同的頁面,我發現了問題,但沒有解決方案。把Urlloader放在一個類
我有一個類我做那類被稱爲WebServiceController:
public class WebServiceController
{
private var url:String;
private var post:Object=new Object();
private var loader:URLLoader = new URLLoader();
private var postVariable:String="";
private var getVariable:String="";
private var Geladen:Boolean=false;
public function WebServiceController()
{
}
public function postUrlData(u:String,p:Object):String
{
url=u;
post=p;
var urlReq:URLRequest = new URLRequest (url);
var i:int=0;
for(var key:String in post)
{
//trace(key +" = " + post[key]);
if(i==0)
{
// urlVars.key = post[key];
postVariable=postVariable+""+key+"="+post[key];
}
else
{
//urlVars.key = post[key];
postVariable=postVariable+"&"+key+"="+post[key];
}
i++;
}
//trace(postVariable);
var urlVars:URLVariables = new URLVariables(postVariable);
//trace(urlVars);
// Add the variables to the URLRequest
urlReq.data = urlVars;
urlReq.method = URLRequestMethod.POST;
// Add the URLRequest data to a new Loader
//loader.load(urlReq);
// Set a listener function to run when completed
loader.addEventListener(Event.COMPLETE, onLoaderComplete);
// Set the loader format to variables and post to the PHP
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(urlReq);
function onLoaderComplete(event:Event):void
{
return loader.data;
}
}
現在從我的影片剪輯我所說的一個功能,但它說未定義:
var wb:WebServiceController = new WebServiceController();
trace(wb.postUrlData(url,post));
我不知道如何解決此問題。我嘗試了不同的東西,但它一直說未定義。
另請參見URLLoader.load調用是異步的,所以當你試圖追查出來的數據尚未返回。請嘗試將跟蹤放入onLoaderComplete方法中。要在父類中捕獲它,您可能希望在加載數據時從控制器派發事件。 –
你能告訴我一個關於如何在父類中派發事件的例子嗎? – user2157622