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