2009-07-30 26 views
0

私はXMLファイルをロードしようとしています。魔法使いは、hddのanywereにすることができます。これはブラウズするために行ったことですが、後でファイルをロードしようとしています。ここ Flash AS3のロードファイルxml

コード

パッケージ{ 輸入flash.display.Spriteある

にswfファイルの同じパスに見えます。 import flash.events。 ; import flash.net。;私はそれswfファイルと同じディレクトリイマイチxmlファイルを開いたとき、それは私にunfoundファイルのエラーを与える

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

}。 私にできることは何ですか? mp3のための例えば原因があったファイルをロードするための特別なクラスである、あなたはローカルのXMLファイルをロードしているので、あなたがFileStream.readを(使用したいと思うhttp://www.flexiblefactory.co.uk/flexible/?p=46

おかげ

答えて

1

を参照)ではなく、 URLRequest 、あなたがFileStreamを参照(http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/filesystem/FileStream.html)を読むことをお勧めします

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

:またfile.nameはちょうどので、何がやりたいだろうことです、あなたのファイルの名前ではなく、完全なパスを与えることに注意してください大きなxmlファイルを開く場合は、非同期に読み込む必要があります。

3

この回答はAIRアプリケーションでのみ有効です。ローカルXMLファイルをロード

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

。 誰かを助けるかもしれない...