我試圖從一個事件返回XML返回主函數,但無法弄清楚如何去做。AS3從事件偵聽器函數返回一個變量
這裏是我打電話的功能:
主文件:
public var mySendAndLoad:SendAndLoad = new SendAndLoad();
mySendAndLoad.sendData(url,variables)
的mySendAndLoad類:
package
{
import flash.events.*;
import flash.net.*;
import flash.xml.XMLDocument;
public class SendAndLoad
{
public var xml:XML = new XML();
public var xmlList:XMLList;
public function SendAndLoad()
{
}
public function sendData(url:String, _vars:URLVariables):String
{
var request:URLRequest = new URLRequest(url);
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
request.data = _vars;
request.method = URLRequestMethod.POST;
loader.addEventListener(Event.COMPLETE, handleComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.load(request);
}
private function handleComplete(event:Event):String
{
var loader:URLLoader = URLLoader(event.target);
xml = XML(loader.data);
xmlList = xml.children();
return(xmlList[1]);
}
private function onIOError(event:IOErrorEvent):void
{
trace("Error loading URL.");
}
}
}
我希望發生的是擁有的XMLList回來了主文件。但由於它不是在我調用(sendData)的情況下,它不會被帶回。
任何想法?
嗨,我剛剛嘗試在我自己的項目中使用此代碼。但是,Flash會報告公用函數sendData的錯誤,並說它不返回值。我試着將函數設置爲:void,但它仍然表示相同的錯誤。對此有何幫助?謝謝 –
@MrPablo,哇,我不敢相信這麼長時間沒有人發現這個錯誤。我已經編輯了答案(將函數更改爲void)並且它可以正常工作。我建議你清理這個項目(如果你使用的是Flash Builder)或者重新啓動Flash Pro並重試 –
是的,我在發表我的評論後不久就明白了! –