【发布时间】:2010-03-29 18:24:38
【问题描述】:
我有一些通过 HttpHandler 打开 SWF 文件的 AS2 代码。
我正在尝试让程序识别请求的文件何时丢失。
我的第一次尝试涉及使用 LoadVars 和“加载”,并且仅在文件成功加载时才调用 loadMovie(在此处的某处找到该技术)。但是,我发现当文件确实存在时,HttpHandler 中的 ProcessRequest 函数被调用了两次。有意义 - 一次用于加载,一次用于 loadMovie。
现在我改用 MovieClipLoader(也在这里找到了这种技术)。无论是否找到文件,这种方式都只会调用一次 ProcessRequest。但我的问题是 onLoadError 函数只有在我给它一个错误的 URL 时才起作用。如果我给它一个好的 URL 将错误的文件名传递给处理程序,处理程序会抛出一个错误,但我的 onLoadError 函数似乎没有识别出有问题 - 我只是得到一个应该显示错误消息的空白区域起来。
这是相关的 AS2 代码:
function CheckFileExists(inFile) {
var mclListener:Object = new Object();
mclListener.onLoadError = function(target_mc:MovieClip, err:String){
if(err=="URLNotFound")
{
target_mc.createTextField("error_txt", 1, 0, 0, 100, 20);
target_mc.error_txt.autoSize = "left";
target_mc.error_txt.text = "URL not found: \n\t" + target_mc._url;
}
else //I would expect this block to handle the error, since the URL is good.
{
target_mc.createTextField("error_txt", 1, 0, 0, 100, 20);
target_mc.error_txt.autoSize = "left";
target_mc.error_txt.text = "some other problem: \n\t" + target_mc._url;
}
}
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(mclListener);
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mcl.loadClip(inFile, mc);
}
帮助不大?
【问题讨论】:
标签: flash actionscript-2 onerror moviecliploader