2011-04-25 70 views
1

嗨我通過XML將圖像和數據加載到閃存。一些數據丟失了一個圖像或者由於各種原因而沒有。當圖像URL爲空時,flash會返回消息TypeError:Error#2007:參數url必須爲非null。我一直試圖用IO錯誤事件來捕獲這個錯誤,但我不確定這是否是正確的方法,因爲我似乎無法使它工作。這對我造成了一個問題,因爲當我將項目添加到舞臺時,數據與圖像不匹配,以及我能夠捕獲此錯誤後想要執行的操作是將默認圖像拖入_trackArray,我將然後用於添加項目到舞臺。問題捕捉類型錯誤AS3

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); 

}

回答

1

那麼,爲什麼不只是測試,如果當你分配給_trackpicUrl值爲null?

var _trackpicUrl:String; 
if(_trackImage[i] == null) { 
    //do whatever you need to handle the null 
    _trackImage[i] = "myDefault.url"; 
} 
_trackpicUrl = _trackImage[i]; 
0

您不捕捉IOError,因爲它永遠不會到達load()。來自@shanethehat的上述方法可以很好地填補空白,但爲什麼不首先解釋爲什麼它的空值?您是否動態生成XML?