如何解决 Adob​​e Flex 错误:“错误 #2036:加载从未完成”?

Posted

技术标签:

【中文标题】如何解决 Adob​​e Flex 错误:“错误 #2036:加载从未完成”?【英文标题】:How to resolve Adobe Flex error: "Error #2036: Load Never Completed"? 【发布时间】:2010-11-16 16:53:07 【问题描述】:

【问题讨论】:

这是你能想到的最好的描述吗? 【参考方案1】:

不要忘记,您还可以将 IOErrorEvent-listener 添加到加载程序,以便您自己跟踪更多信息。下面的代码是一个通用的启动器,它可能需要更多信息才能真正在 flash/flex 中工作。

swfLoaderInstance:SWFLoader = new SWFLoader();
swfLoaderInstance.source = "someSWFFile.swf";
swfLoaderInstance.addEventListener(IOErrorEvent.IO_ERROR, handleError);

public function handleError(event:IOErrorEvent):void
    trace(event.target);
    //etc...

【讨论】:

【参考方案2】:

问题在于错误定位 SWF 模块。为生成的 SWF 模块设置适当的位置后,错误就会消失。

【讨论】:

就我而言,加载资产时也会出现问题,而不仅仅是 .swf 模块。 (我通过使用绝对 URL 修复它:/dir/someSWFFile.swf 而不是 someSWFFile.swf【参考方案3】:

如果它是互联网浏览器,并且您使用的是 Google Chrome。转到Histor>Clear all browsing Data。仅勾选这些内容,您不会希望丢失浏览数据。

清空缓存, 删除 cookie 和其他网站和插件数据, 清除保存的自动填充表单数据

从一开始就清除它。然后尝试加载你想要的东西。为我工作得很好:)

【讨论】:

【参考方案4】:

我收到了同样的错误信息。就我而言,这是因为 Loader 被垃圾收集了。

这是我遇到问题的代码:

private function loadImageFromUrl( imageUrl:String ):AbstractOperation
    
        var result:AbstractOperation = new AbstractOperation();

        var loader:Loader = new Loader();
        loader.contentLoaderInfo.addEventListener( Event.COMPLETE, function ( e:Event ):void
        
            result.dispatchCompleteEvent( loader.content );
         );
        loader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, function ( event:IOErrorEvent ):void
        
            result.dispatchErrorEvent( event );
         );
        loader.load( new URLRequest( imageUrl ) );

        return result;
    

这是很好的代码:

private var m_loaderReferences:Dictionary = new Dictionary();

private function loadImageFromUrl( imageUrl:String ):AbstractOperation
    
        var result:AbstractOperation = new AbstractOperation();

        var loader:Loader = new Loader();
        m_loaderReferences[imageUrl] = loader; // Need to keep a reference to the loader to avoid Garbage Collection
        loader.contentLoaderInfo.addEventListener( Event.COMPLETE, function ( e:Event ):void
        
            result.dispatchCompleteEvent( loader.content );
            delete m_loaderReferences[imageUrl];
         );
        loader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, function ( event:IOErrorEvent ):void
        
            result.dispatchErrorEvent( event );
            delete m_loaderReferences[imageUrl];
         );
        loader.load( new URLRequest( imageUrl ) );

        return result;
    

我从字典中引用加载器以避免 GC。加载完成后,我从字典中删除加载器。

【讨论】:

以上是关于如何解决 Adob​​e Flex 错误:“错误 #2036:加载从未完成”?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Adob​​e Experience Manager 中包含组件期间的错误?

将 Flex 转换为 Adob​​e Air

如何在 Adob​​e Flex 中显示 PDF?

2021 年的 Adob​​e flex

使用 Adob​​e AIR 下载文件

在 ActionScript 3.0 中以编程方式检测 Adob​​e Air 和 Adob​​e Flex