Paqueteflash.net
Clasepublic class URLLoader
HerenciaURLLoader Inheritance EventDispatcher Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase URLLoader descarga datos desde una URL como texto, datos binarios o variables con codificación URL. Resulta útil para descargar archivos de texto, XML o cualquier otra información que se utilice en una aplicación dinámica gestionada por datos.

Un objeto URLLoader descarga todos los datos de una URL antes de ponerla a disposición de ActionScript. Envía notificaciones sobre el progreso de la descarga que se pueden supervisar mediante las propiedades bytesLoaded y bytesTotal, así como a través de los eventos distribuidos.

Cuando utilice este método, puede ser conveniente usar el modelo de seguridad de Adobe® Flash® Player:

Flash Player 8 y versiones anteriores:

Flash Player 7 y versiones anteriores:

Para más información, consulte las siguientes secciones:

En archivos SWF que se ejecuten en una versión del reproductor anterior a Flash Player 7, url debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. El superdominio se obtiene al eliminar el componente más a la izquierda de la URL de un archivo. Por ejemplo, un archivo SWF situado en www.adobe.com puede cargar datos de fuentes situadas en store.adobe.com porque ambos archivos se encuentran en el mismo superdominio, denominado adobe.com.

Ver los ejemplos

Véase también

URLRequest
URLVariables
URLStream
Lectura de documentos XML externos
Utilización de datos externos


Propiedades públicas
 PropiedadDefinido por
  bytesLoaded : uint = 0
Indica el número de bytes cargados hasta ese momento durante la operación de carga.
URLLoader
  bytesTotal : uint = 0
Indica el número total de bytes de los datos descargados.
URLLoader
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
  data : *
Los datos recibidos de la operación de carga.
URLLoader
  dataFormat : String = "text"
Controla si los datos cargados se reciben como texto (URLLoaderDataFormat.TEXT), como datos binarios sin formato (URLLoaderDataFormat.BINARY) o como variables con codificación URL (URLLoaderDataFormat.VARIABLES).
URLLoader
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
Métodos públicos
 MétodoDefinido por
  
URLLoader(request:URLRequest = null)
Crea un objeto URLLoader.
URLLoader
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento.
EventDispatcher
  
Cierra la operación de carga en curso.
URLLoader
 Inherited
Distribuye un evento en el flujo del evento.
EventDispatcher
 Inherited
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento.
EventDispatcher
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
  
load(request:URLRequest):void
Envía y carga datos desde la URL especificada.
URLLoader
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Elimina un detector del objeto EventDispatcher.
EventDispatcher
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
 Inherited
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto.
EventDispatcher
Eventos
 Evento Resumen Definido por
 Inherited Se distribuye cuando Flash Player queda seleccionado por el sistema operativo y pasa a estar activo.EventDispatcher
   Se distribuye tras decodificar y colocar todos los datos recibidos en la propiedad data del objeto URLLoader.URLLoader
 Inherited Se distribuye cuando Flash Player deja de estar seleccionado por el sistema operativo y pasa a estar inactivo.EventDispatcher
   Se distribuye si una llamada a URLLoader.load() intenta acceder a datos sobre HTTP y si el entorno de Flash Player actual puede detectar y devolver el código de estado para la solicitud.URLLoader
   Se distribuye si el resultado de una llamada a URLLoader.load() es un error grave que hace que la descarga finalice.URLLoader
   Se distribuye cuando se inicia la operación de descarga tras una llamada al método URLLoader.load().URLLoader
   Se distribuye al recibirse datos mientras progresa una operación de descarga.URLLoader
   Se distribuye si se intenta llamar a URLLoader.load() para cargar datos de un servidor situado fuera del entorno limitado de seguridad.URLLoader
Información sobre propiedades
bytesLoadedpropiedad
public var bytesLoaded:uint = 0

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Indica el número de bytes cargados hasta ese momento durante la operación de carga.

bytesTotalpropiedad 
public var bytesTotal:uint = 0

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Indica el número total de bytes de los datos descargados. Esta propiedad contiene 0 si la operación de carga está en curso y se llena cuando la operación ha finalizado. Asimismo, un encabezado Content-Length que falte dará como resultado que bytesTotal sea indeterminado.

datapropiedad 
public var data:*

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Los datos recibidos de la operación de carga. Esta propiedad se llena únicamente al finalizar la operación de carga. El formato de los datos depende del establecimiento de la propiedad dataFormat:

Si la propiedad dataFormat es URLLoaderDataFormat.TEXT, los datos recibidos son una cadena con el texto del archivo cargado.

Si la propiedad dataFormat es URLLoaderDataFormat.BINARY, los datos recibidos son un objeto ByteArray con los datos binarios sin formato.

Si la propiedad dataFormat es URLLoaderDataFormat.VARIABLES, los datos recibidos son un objeto URLVariables con las variables con codificación URL.

Véase también

dataFormatpropiedad 
public var dataFormat:String = "text"

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Controla si los datos cargados se reciben como texto (URLLoaderDataFormat.TEXT), como datos binarios sin formato (URLLoaderDataFormat.BINARY) o como variables con codificación URL (URLLoaderDataFormat.VARIABLES).

Si el valor de la propiedad dataFormat es URLLoaderDataFormat.TEXT, los datos recibidos son una cadena con el texto del archivo cargado.

Si el valor de la propiedad dataFormat es URLLoaderDataFormat.BINARY, los datos recibidos son un objeto ByteArray con los datos binarios sin formato.

Si el valor de la propiedad dataFormat es URLLoaderDataFormat.VARIABLES, los datos recibidos son un objeto URLVariables con las variables con codificación URL.

El valor predeterminado es URLLoaderDataFormat.TEXT.

Véase también

Información sobre constructores
URLLoader()constructor
public function URLLoader(request:URLRequest = null)

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Crea un objeto URLLoader.

Parámetros
request:URLRequest (default = null) — Un objeto URLRequest que especifica la URL que se va a descargar. Si se omite este parámetro, no se inicia ninguna operación de carga. Si se especifica, la operación de carga se inicia inmediatamente (consulte la entrada load para obtener más información).

Véase también

Información sobre métodos
close()método
public function close():void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Cierra la operación de carga en curso. Se detendrá inmediatamente cualquier operación de carga en curso. Si no se transmite ninguna URL en ese momento, se emitirá un error de transmisión no válida.

load()método 
public function load(request:URLRequest):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Envía y carga datos desde la URL especificada. Los datos se pueden recibir como texto, como datos binarios sin formato o como variables con codificación, en función del valor establecido para la propiedad dataFormat. Tenga en cuenta que el valor predeterminado de la propiedad dataFormat es text. Si quiere enviar datos a la URL especificada, puede establecer la propiedad data en el objeto URLRequest.

Nota: si un archivo que se está cargando contiene caracteres no ASCII (como ocurre en muchos idiomas, no así en inglés), se recomienda que guarde el archivo con codificación UTF-8 o UTF-16, en lugar de utilizar un formato no Unicode, como ASCII.

Cuando utilice este método, tenga en cuenta el modelo de seguridad de Flash Player:

En Flash Player 9 y versiones posteriores, se puede impedir que un archivo SWF utilice este método si define el parámetro allowNetworking de las etiquetas object y embed de la página HTML que aloja el contenido SWF.

Flash Player 8 y versiones anteriores:

Para Flash Player 7 y versiones posteriores, los sitios Web pueden permitir el acceso de distintos dominios a un recurso mediante un archivo de política de varios dominios. En archivos SWF de cualquier versión que se ejecuten en Flash Player 7 y posterior, url debe estar exactamente en el mismo dominio. Por ejemplo, un archivo SWF de www.adobe.com puede cargar datos únicamente de orígenes que estén también en www.adobe.com.

Para más información, consulte las siguientes secciones:

En archivos SWF que se ejecuten en una versión del reproductor anterior a Flash Player 7, url debe estar en el mismo superdominio que el archivo SWF que emite esta llamada. El superdominio se obtiene al eliminar el componente más a la izquierda de la URL de un archivo. Por ejemplo, un archivo SWF situado en www.adobe.com puede cargar datos de fuentes situadas en store.adobe.com porque ambos archivos se encuentran en el mismo superdominio de adobe.com.

Parámetros

request:URLRequest — Un objeto URLRequest que especifica la URL que se va a descargar.


Eventos
complete:Event — Se distribuye cuando los datos se han cargado correctamente.
 
httpStatus:HTTPStatusEvent — Si se accede a través de HTTP y el entorno actual de Flash Player admite la obtención de códigos de estado, es posible recibir dichos eventos además de cualquier evento complete o error.
 
ioError:IOErrorEvent — No se pudo completar la operación de carga.
 
progress:ProgressEvent — Se distribuye al recibirse datos mientras progresa una operación de descarga.
 
securityError:SecurityErrorEvent — Intento de operación de carga para recuperar datos desde un servidor fuera del entorno limitado de seguridad del elemento que realiza la llamada. Esto puede resolverse utilizando un archivo de política en el servidor.
 
open:Event — Se distribuye cuando se inicia la operación de carga.

Emite
ArgumentError — Es posible que los objetos URLRequest.requestHeader no contengan determinados encabezados de solicitud HTTP no permitidos. Para más información, consulte la descripción de la clase URLRequestHeader.
 
MemoryError — Este error puede producirse por los motivos siguientes: 1) Flash Player no puede convertir el parámetro URLRequest.data de UTF8 a MBCS. Este error es aplicable si se define el objeto URLRequest transferido a load() para que lleve a cabo una operación GET y si System.useCodePage está establecido como true. 2) Flash Player no puede asignar memoria para los datos POST. Este error se aplica si se define el objeto URLRequest transferido a load para que lleve a cabo una operación POST.
 
SecurityError — Los archivos SWF locales que no son de confianza no pueden comunicarse en Internet. Puede solucionar este problema reclasificando el archivo SWF como archivo local de red o archivo de confianza.
 
TypeError — El valor del parámetro de solicitud o de la propiedad URLRequest.url del objeto URLRequest transferido es null.

Véase también


Ejemplo

En el ejemplo siguiente, se carga un archivo XML y el contenido de los primeros argumentos de sus elementos se muestran en un campo de texto.

Se crea un objeto URLRequest para identificar la ubicación del archivo XML, que para este ejemplo está en el mismo directorio que el archivo SWF. El archivo cargado en un bloque try...catch para capturar cualquier error que pueda ocurrir. (En este caso capturamos los errores SecurityError.) Si se produce un evento IO_ERROR, se invoca el método errorHandler(), que escribe un mensaje de error en el campo de texto xmlTextField. Una vez que se han recibido los datos del archivo XML y se han colocado en la propiedad de datos del objeto loader URLLoader, se distribuye el evento Event.COMPLETE y se invoca el método loaderCompleteHandler().

En el método loaderCompleteHandler(), se utiliza un bloque try...catch para capturar cualquier error de análisis que pueda ocurrir al convertir los datos cargados del archivo a un objeto XML. El método readNodes() se desplaza de forma recursiva por todos los elementos de los nodos del documento XML y agrega el campo de texto xmlTextField con una lista de los primeros atributos de todos los elementos.

package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.xml.*;
    import flash.events.IOErrorEvent;

    public class URLLoader_loadExample extends Sprite {
        private var xmlTextField:TextField = new TextField();
        private var externalXML:XML;
        private var loader:URLLoader;

        public function URLLoader_loadExample() {
            var request:URLRequest = new URLRequest("xmlFile.xml");

            loader = new URLLoader();

            try {
                loader.load(request);
            }
            catch (error:SecurityError)
            {
                trace("A SecurityError has occurred.");
            }

             loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);

            xmlTextField.x = 10;
            xmlTextField.y = 10;
            xmlTextField.background = true;
            xmlTextField.autoSize = TextFieldAutoSize.LEFT;

            addChild(xmlTextField);
        }

        private function loaderCompleteHandler(event:Event):void {

                try {
                    externalXML = new XML(loader.data);
                    readNodes(externalXML);
                } catch (e:TypeError) {
                    trace("Could not parse the XML file.");
                }
        }

        private function readNodes(node:XML):void {

                for each (var element:XML in node.elements()) {
                    xmlTextField.appendText(element.attributes()[0] + "\n");

                    readNodes(element);
                }
        }

        private function errorHandler(e:IOErrorEvent):void {
            xmlTextField.text = "Had problem loading the XML File.";
        }
    }
}
Información sobre eventos
complete Evento
Tipo de objeto de evento: flash.events.Event
Event.type property = flash.events.Event.COMPLETE

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye tras decodificar y colocar todos los datos recibidos en la propiedad data del objeto URLLoader. Es posible acceder a los datos recibidos una vez distribuido este evento.

Define el valor de la propiedad type de un objeto de evento complete.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetObjeto de red que ha terminado de cargarse.

Véase también

httpStatus Evento  
Tipo de objeto de evento: flash.events.HTTPStatusEvent
HTTPStatusEvent.type property = flash.events.HTTPStatusEvent.HTTP_STATUS

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye si una llamada a URLLoader.load() intenta acceder a datos sobre HTTP y si el entorno de Flash Player actual puede detectar y devolver el código de estado para la solicitud. (Es posible que algunos entornos de navegador no proporcionen esta información.) Tenga en cuenta que se enviará el evento httpStatus (si existe) antes que (y además de) cualquier evento complete o error.

Define el valor de la propiedad type de un objeto de evento httpStatus.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
statusEl código de estado HTTP que devuelve el servidor.
targetEl objeto de red que recibe el código de estado HTTP.

Véase también

ioError Evento  
Tipo de objeto de evento: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye si el resultado de una llamada a URLLoader.load() es un error grave que hace que la descarga finalice.

Define el valor de la propiedad type de un objeto de evento ioError.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetEl objeto de red en el que se produce el error de entrada/salida.
textTexto que se mostrará como mensaje de error.

Véase también

open Evento  
Tipo de objeto de evento: flash.events.Event
Event.type property = flash.events.Event.OPEN

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye cuando se inicia la operación de descarga tras una llamada al método URLLoader.load().

Define el valor de la propiedad type de un objeto de evento open.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetObjeto de red que ha abierto una conexión.

Véase también

progress Evento  
Tipo de objeto de evento: flash.events.ProgressEvent
ProgressEvent.type property = flash.events.ProgressEvent.PROGRESS

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye al recibirse datos mientras progresa una operación de descarga.

Tenga en cuenta que con un objeto URLLoader no es posible acceder a los datos hasta que no se reciben por completo. Por tanto, el evento de progreso únicamente sirve de notificación para saber qué grado de progreso ha alcanzado la descarga. Para acceder a los datos antes de que se descarguen por completo, utilice un objeto URLStream.

Define el valor de la propiedad type de un objeto de evento progress.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
bytesLoadedNúmero de elementos o bytes cargados en el momento en que el detector procesa el evento.
bytesTotalNúmero total de elementos o bytes que se cargarán en última instancia si el proceso de carga se realiza correctamente.
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetEl objeto de red que informa sobre el progreso.

Véase también

securityError Evento  
Tipo de objeto de evento: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye si se intenta llamar a URLLoader.load() para cargar datos de un servidor situado fuera del entorno limitado de seguridad.

La constante SecurityErrorEvent.SECURITY_ERROR define el valor de la propiedad type de un objeto de evento securityError.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetEl objeto de red que informa sobre le error de seguridad.
textTexto que se mostrará como mensaje de error.

Véase también

Ejemplos Cómo utilizar los ejemplos
URLLoaderExample.as

En el ejemplo siguiente, se cargan y muestran los datos encontrados en un archivo de texto local. También realiza un seguimiento de la información del control de eventos.

Nota: para ejecutar este ejemplo, coloque un archivo llamado urlLoaderExample.txt en el mismo directorio que el archivo SWF. Dicho archivo debe contener únicamente la siguiente línea de texto: answer=42&question=unknown

El código de ejemplo cumple las siguientes funciones:

  1. La función constructora crea una instancia de URLLoader llamada loader y una instancia de URLRequest request, que contiene la ubicación y el nombre del archivo que se va a cargar.
  2. El objeto loader se transfiere al método configureListeners(), que añade detectores para cada uno de los eventos URLLoader admitidos.
  3. Posteriormente, el objeto request se transfiere a loader.load(), que carga el archivo de texto.
  4. Cuando URLLoader finaliza la carga del archivo de texto, se activa el evento Event.COMPLETE, que activa el método completeHandler(). El método completeHandler() crea variables de URLVariables a partir del texto cargado desde el archivo. El objeto URLVariables convierte los pares nombre/valor con codificación URL en propiedades de ActionScript para facilitar la manipulación de los datos cargados.

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;

    public class URLLoaderExample extends Sprite {
        public function URLLoaderExample() {
            var loader:URLLoader = new URLLoader();
            configureListeners(loader);

            var request:URLRequest = new URLRequest("urlLoaderExample.txt");
            try {
                loader.load(request);
            } catch (error:Error) {
                trace("Unable to load requested document.");
            }
        }

        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }

        private function completeHandler(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            trace("completeHandler: " + loader.data);

            var vars:URLVariables = new URLVariables(loader.data);
            trace("The answer is " + vars.answer);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
    }
}




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/net/URLLoader.html