Sólo estoy tratando de cargar un archivo xml bruja puede ser anywere en el disco duro, esto es lo que he hecho para navegar por ella, pero más tarde, cuando yo estoy tratando de cargar el archivo lo único que haría sería mirar en la misma ruta del archivo swf

aquí está el código

el paquete {
import flash.pantalla.Sprite;
import flash.eventos.;
importación flash.net.
;

public class cargadorXML extends Sprite {


    public var cuadro:Sprite = new Sprite();
    public var file:FileReference;
    public var req:URLRequest;
    public var xml:XML;
    public var xmlLoader:URLLoader = new URLLoader();

    public function cargadorXML() {
        cuadro.graphics.beginFill(0xFF0000);
        cuadro.graphics.drawRoundRect(0,0,100,100,10);
        cuadro.graphics.endFill();
        cuadro.addEventListener(MouseEvent.CLICK,browser);
        addChild(cuadro);

    }
    public function browser(e:Event) {

        file = new FileReference();
        file.addEventListener(Event.SELECT,bien);
        file.browse();

    }
    public function bien(e:Event) {
        xmlLoader.addEventListener(Event.COMPLETE, loadXML);
        req=new URLRequest(file.name);
        xmlLoader.load(req);
    }
    public function loadXML(e:Event) {
        xml=new XML(e.target.data);
        //xml.name=file.name;
        trace(xml);
    }
}

}

cuando abro un archivo xml que no es el mismo directorio que el archivo swf, me da un infundada error de archivo.
hay algo que yo pueda hacer?
causa por ejemplo de mp3 hay una clase especial para cargar el archivo, consulte http://www.flexiblefactory.co.uk/flexible/?p=46

gracias

InformationsquelleAutor | 2009-07-30

3 Comentarios

  1. 1

    Ya que se carga un archivo xml local, usted querrá uso de FileStream.leer() en lugar de un URLRequest. También tenga en cuenta que el archivo.nombre simplemente le dan el nombre del archivo, no la ruta completa, por lo que lo que usted querrá hacer es:

     public function bien(e:Event) {
        var file:File = File.documentsDirectory.resolvePath(e.target);
        var fileStream:FileStream = new FileStream();
        fileStream.open(file, FileMode.READ);
        var prefsXML:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));
        fileStream.close();
    }

    Usted lo desea, puede leer el FileStream de referencia (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/filesystem/FileStream.html), si abre un archivo xml grande, tendrás que leer de forma asincrónica.

  2. 3

    Nota que esa respuesta sólo funciona para aplicaciones de AIRE!

  3. 0
    var cuadro:Sprite = new Sprite();
    var file:FileReference;
    var xml:XML;
    
    function cargadorXML() {
        cuadro.graphics.beginFill(0xFF0000);
        cuadro.graphics.drawRoundRect(0,0,100,100,10);
        cuadro.graphics.endFill();
        cuadro.addEventListener(MouseEvent.CLICK,browser);
        addChild(cuadro);
    
    }
    function browser(e:Event) {
    
        file = new FileReference();
        file.addEventListener(Event.SELECT,bien);
        file.browse();
    
    }
    function bien(e:Event) {
        file.addEventListener(Event.COMPLETE, loadXML);
        file.load();
    }
    function loadXML(e:Event) {
        xml = new XML(e.target.data);
        trace(xml);
    }
    
    cargadorXML();

    La carga de un archivo XML local.
    Se puede ayudar a alguien…

Dejar respuesta

Please enter your comment!
Please enter your name here