如何在AS3中捕获难以捉摸的加载程序错误

时间:2014-02-21 09:18:42

标签: actionscript-3 flash try-catch

我正在尝试使用加载程序和VARIABLES数据格式从php脚本中获取一些数据。这是我的代码:

myUrlResults = new URLRequest("http://[...]/getData.php");
myUrlResults.method = URLRequestMethod.GET;

myResultsLoader = new URLLoader();
myResultsLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
myResultsLoader.addEventListener(Event.COMPLETE, sendEventCompleteHandler);
myResultsLoader.addEventListener(IOErrorEvent.IO_ERROR, sendEventErrorHandler);
myResultsLoader.load(myUrlResults);

function sendEventCompleteHandler(e:Event) {

    trace('Ok.');
}

function sendEventErrorHandler(e:IOErrorEvent) {

    trace('Error occured:' + e);
}

如您所知,如果php文件格式不正确,Flash会给您一个令人讨厌的错误。 但我的.php文件返回类似var1=5&var2=10的内容,一切都很好。但是,有时,服务器有问题并返回"Too many connections."这是Flash不喜欢的东西,因为它不是变量 - 值对,我得到这样的错误:

Error: Error #2101: The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs.
    at Error$/throwError()
    at flash.net::URLVariables/decode()
    at flash.net::URLVariables$iinit()
    at flash.net::URLLoader/flash.net:URLLoader::onComplete()

如何捕捉此错误?

1 个答案:

答案 0 :(得分:0)

尝试设置

myResultsLoader.dataFormat = URLLoaderDataFormat.TEXT;

并在完整的处理程序中验证结果后自己获取变量。

您可以使用URLVariable.decode()并尝试/捕获它。