您好我正在通过XML将图像和数据加载到Flash中。由于各种原因,某些数据丢失了图像或者没有图像。当图像URL为空时,flash返回消息TypeError:错误#2007:参数url必须为非null。我一直在尝试使用IO错误事件捕获此错误,但我不确定这是否是正确的方法,因为我似乎无法让它工作。这对我来说是一个问题,因为当我将项目添加到舞台时,数据与图像不匹配,一旦我能够捕获此错误,我想要做的是将默认图像推入_trackArray,我将然后用来向舞台添加项目。
private function callTracks(): void {
for (var i:Number = 0; i < _tracksTotal; i++){
var _trackpicUrl = _trackImage[i];
//trace(_trackImage[i]);
var _trackpicLoader = new Loader();
_trackpicLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, trackpicLoaded);
_trackpicLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
_trackpicLoader.load(new URLRequest(_trackpicUrl));
_trackpicLoader.name = i+1;
_trackArray.push(_trackpicLoader);
_containerMc.addChildAt(_trackpicLoader, _ringCounter);
}
}
private function loadError(e:IOErrorEvent): void {
trace("IO Error: " + e);
}
答案 0 :(得分:1)
那么,为什么不在测试_trackpicUrl
时测试值是否为空?
var _trackpicUrl:String;
if(_trackImage[i] == null) {
//do whatever you need to handle the null
_trackImage[i] = "myDefault.url";
}
_trackpicUrl = _trackImage[i];
答案 1 :(得分:0)
您没有捕获IOError,因为它永远不会到达load()。 @shanethehat上面的方法可以很好地填补空白,但为什么不首先考虑为什么它的null呢?您是否动态生成XML?