Cargar archivos de texto y XML con URLLoader

Etiquetas: URLLoader URLRequest load

El código de este ejemplo carga un XML e informa de los eventos de carga. Para cargar imágenes y SWF hay que utilizar Loader en lugar de URLLoader.

//Importo las clases necesarias
import flash.display.*;
import flash.events.*;
import flash.net.*;
 
//Asigno la url que se va a cargar
var url:String = "discos.xml";
 
//Carga el XML
function CargarXML() {
        //Creo el objeto cargador
        var loader:URLLoader = new URLLoader();
        //Le añado los listeners
        ponerListeners(loader);
        //Creo el objeto que contendrá la petición
        var peticion:URLRequest = new URLRequest(url);
        //Cargo la petición
        loader.load(peticion);
}
 
//Añade los listeners al cargador
function ponerListeners(dispatcher:IEventDispatcher):void {
        dispatcher.addEventListener(Event.COMPLETE, completeHandler);
        dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
        dispatcher.addEventListener(Event.INIT, initHandler);
        dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        dispatcher.addEventListener(Event.OPEN, openHandler);
        dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
}
 
//Funcion que se ejecuta cuando termina la descarga.
function completeHandler(event:Event):void {
        trace("completeHandler: " + event);
        trace(event.target.data);
}
 
//Se ejecuta al recibir un código de estado HTTP
function httpStatusHandler(event:HTTPStatusEvent):void {
        trace("httpStatusHandler: " + event);
}
 
//Se distribuye cuando las propiedades del objeto cargado están disponibles
//A partir de su distribucion podriamos modificar el objeto (ancho, escala, etc)
function initHandler(event:Event):void {
        trace("initHandler: " + event);
}
 
//Se ejecuta cuando hay un error de entrada/salida, por ejemplo, al intentar cargar un
//archivo inexistente
function ioErrorHandler(event:IOErrorEvent):void {
        trace("ioErrorHandler: " + event);
}
 
//Se ejecuta cuando comienza la operación de carga
function openHandler(event:Event):void {
        trace("openHandler: " + event);
}
 
//Se ejecuta periodicamente mientras dura la carga
function progressHandler(event:ProgressEvent):void {
        trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
 
//Empezamos
CargarXML();

Comentarios:
Piero Recchia dijo:
Excelente tu codigo, pero me gustaria preguntarte algo si ejecuto este código en una escena y lleno un array con los datos del xml, ¿Como haria para acceder a este Array en otra escena mediante el uso de AS3? Gracias.
esedeerre dijo:

Buenas Piero, en principio no te recomendaría que utilices escenas para trabajar con AS3

Si las usas, y almacenas una variable en el stage de la escena1, puedes acceder a ella desde la escena2 haciendo referencia al stage. Si la variable está almacenada en un clip de la escena1 que no está en la escena2, no puedes acceder a ella.

julito dijo:
Saludos esedeerre. tengo un problemilla con mi codigo as3. Veras, en el archivo xml ingreso texto (por ejemplo : técnico, años) y al cargar mi archivo de flash, las palabras (acentuadas o la ñ) aparecen sin acento o sin el guion, en algunas palabras hasta me aparece otro caracter. Me puedes ayudar, cuàl es mi problema? gracias
Francisco dijo:
Y como se hace para que me muestre el XML en un texto dinamico en un swf principal sin utilizar el "trace" ?
gabriel dijo:
Hola, yo tambien tengo la misma duda que francisco, como se le hace para muestre la informacion en un texto dinamico y no con trace. saludos y gracias por los tutoriales
luis arevalo dijo:
Hola, lo estoy utilizando para cargar un xml generado por un php, no se si es la manera correcta, estoy migrando al as2, yo antes leía el php y metia todo en un array pero ahora no se como el codigo del php es el siguiente: do { echo " "; echo "".$row["id"]." "; echo utf8_encode("".$row["proyecto"]." "); echo utf8_encode("".$row["nombre"]." "); echo utf8_encode("".$row["ubicacion"]." "); echo utf8_encode("".$row["de"]." "); echo utf8_encode("".$row["para"]." "); echo utf8_encode("".$row["comentario"]." "); echo " "; } while ($row = mysql_fetch_array($result1));
Dejar un comentario:
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web: