【问题标题】:Problem catching Type Error AS3捕获类型错误 AS3 的问题
【发布时间】:2026-01-30 06:30:01
【问题描述】:

您好,我正在通过 XML 将图像和数据加载到闪存中。由于各种原因,某些数据位缺少图像或只是没有图像。当图像 URL 为 null 时,flash 返回消息 TypeError: Error #2007: Parameter url must be non-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);

}

【问题讨论】:

    标签: xml flash actionscript-3 loader


    【解决方案1】:

    那么,当你分配给_trackpicUrl 时,为什么不直接测试该值是否为空呢?

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

    【讨论】:

      【解决方案2】:

      您没有捕获 IOError,因为它永远不会到达 load()。来自@shanethehat 的上述方法可以很好地填补空白,但为什么不首先研究一下为什么它的 null 呢?您是动态生成 XML 吗?

      【讨论】:

        最近更新 更多