Frage

Ich versuche nur, eine XML-Datei Hexe zu laden anywere auf der Festplatte sein, das ist, was ich habe es zu durchsuchen getan, aber später, wenn ich versuche, die Datei zu laden sie nur in dem gleichen Weg aussehen würden die sWF-Datei

Hier ist der Code

package {     import flash.display.Sprite;     import flash.events .     Import 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);
    }
}

}

, wenn ich eine XML-Datei öffnen, die es das gleiche Verzeichnis wie die SWF-Datei ist nicht, es gibt mir eine unfound Dateifehler. Ich gibt es etwas tun? verursachen zum Beispiel für mp3 dort die Datei zum Laden, eine besondere Klasse finden Sie unter http: / /www.flexiblefactory.co.uk/flexible/?p=46

Dank

War es hilfreich?

Lösung

Da Sie eine lokale XML-Datei einlegen, sollten Sie FileStream.read () eher als ein URLRequest verwenden. Beachten Sie auch, dass file.name wird nur geben Sie den Namen der Datei, nicht den vollständigen Pfad, so was Sie tun möchten, ist:

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

Sie können die Filestream-Referenz lesen ( http: //livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/filesystem/FileStream.html ), wenn Sie eine große xML-Datei zu öffnen, müssen Sie es asynchron lesen.

Andere Tipps

Beachten Sie, dass diese Antwort nur für AIR-Anwendungen funktioniert!

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();

Laden eine lokale XML-Datei. Es könnte jemand helfen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top