Pregunta

Cómo resolver el error de Adobe Flex: " Error # 2036: Carga nunca completada " ;?

¿Fue útil?

Solución 2

El problema era con la ubicación incorrecta de los módulos SWF. Tan pronto como se estableció la ubicación adecuada para los módulos SWF generados, el error desaparece.

Otros consejos

No olvides que también puedes agregar un IOErrorEvent-listener a los cargadores, para que puedas rastrear un poco más de información por ti mismo. El siguiente código es un iniciador general, probablemente necesitará un poco más de información antes de que realmente funcione en 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...
}

Si se trata de un navegador de Internet, y está utilizando Google Chrome. Vaya a Histor > Borrar todos los datos de navegación . Marque solo estas cosas, no querrá perder los datos de navegación.

Vaciar el caché, Eliminar cookies y otros datos de sitios y complementos, Borrar los datos de formulario de Autocompletar guardados

Borrarlo desde el principio de los tiempos. Luego intente cargar lo que desea. Me funcionó bien :)

Recibí el mismo mensaje de error. En mi caso, se debió a que el Loader estaba recolectando basura.

Este es el código con el que tuve problemas:

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

Y este es el buen código:

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

Hago referencia al cargador de un Diccionario para evitar el GC. Elimino el cargador del Diccionario cuando termina de cargar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top