6 Stimmen

Wie löst man den Adobe Flex-Fehler "Fehler #2036: Laden wurde nie abgeschlossen"?

Wie behebe ich den Adobe Flex Fehler: "Fehler #2036: Laden nie abgeschlossen"?

6voto

Timo Punkte 61

Vergessen Sie nicht, dass Sie auch einen IOErrorEvent-Listener zu den Loadern hinzufügen können, um mehr Informationen für sich selbst zu verfolgen. Der darunter stehende Code ist ein allgemeiner Einstiegspunkt, er wird wahrscheinlich etwas mehr Informationen benötigen, bevor er tatsächlich in Flash/Flex funktioniert.

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

public function handleError(event:IOErrorEvent):void{
    trace(event.target);
    //usw...
}

5voto

Roman Kagan Punkte 10272

Das Problem bestand darin, dass die SWF-Module falsch platziert wurden. Sobald der richtige Speicherort für die generierten SWF-Module festgelegt wurde, verschwand der Fehler.

1voto

XeX Punkte 11

Wenn es sich um ein Internetbrowser-Problem handelt und Sie Google Chrome verwenden. Gehen Sie zu Verlauf>Alle Browserdaten löschen. Nur diese Elemente auswählen, Sie möchten die Browserdaten nicht verlieren.

Cache leeren, Cookies und andere Website- und Plug-in-Daten löschen, Gespeicherte Autofill-Formulardaten löschen

Von Anfang an löschen. Versuchen Sie dann das Ding zu laden, das Sie wollen. Bei mir hat es gut funktioniert :)

1voto

Wim Deblauwe Punkte 22347

Ich hatte dieselbe Fehlermeldung. In meinem Fall lag es daran, dass der Loader von der Müllsammlung beseitigt wurde.

Das ist der Code, mit dem ich Probleme hatte:

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

Und das ist der richtige Code:

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

Ich verweise auf den Loader aus einem Dictionary, um die GC zu vermeiden. Ich entferne den Loader aus dem Dictionary, wenn er mit dem Laden fertig ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X