actionscript-3 – 可以在AS3中保存XML文件

var xml:XML = <myXml>
                    <item prop="1" />
                    <item prop="2" />
                </myXml>;

我需要在本地硬盘(项目目录)中保存为xml文件.

是否可以保存as3本身?

我把它扔在一起,当然你可以使用以下作为极简主义的例子保存到.XML.
package com.hodgedev.xmlcreator
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.utils.ByteArray;
    import flash.net.FileReference;

/**
 * ...
 * @author Brian Hodge (brian@hodgedev.com)
 */
public class Main extends Sprite 
{
    private var _xml:XML;

    public function Main():void 
    {
        if (stage) init();
        else addEventListener(Event.ADDED_TO_STAGE,init);
    }

    private function init(e:Event = null):void 
    {
        removeEventListener(Event.ADDED_TO_STAGE,init);

        //Calling the save method requires user interaction and Flash Player 10
        stage.addEventListener(MouseEvent.MOUSE_DOWN,_onMouseDown);

        _xml= <xml>
              <test>data</test>
              </xml>;
    }
    private function _onMouseDown(e:MouseEvent):void
    {
        var ba:ByteArray = new ByteArray();
        ba.writeUTFBytes(_xml);
        //ba.

        var fr:FileReference = new FileReference();
        fr.addEventListener(Event.SELECT,_onRefSelect);
        fr.addEventListener(Event.CANCEL,_onRefCancel);

        fr.save(ba,"filename.xml");
    }
    private function _onRefSelect(e:Event):void
    {
        trace('select');
    }
    private function _onRefCancel(e:Event):void
    {
        trace('cancel');
    }
}

}

有一些事情需要注意.

>您需要Flash Player 10才能使用FileReference类的save方法.
>为了执行任何隐藏提示的操作,Flash需要用户交互,如键盘或鼠标输入.

在上面我监听舞台上的MouseEvent.MOUSE_DOWN作为调用保存提示所需的USER INteraCTION.

我在代码中设置了一个基本的XML结构(这通常来自和外部源,并且可以在两种方式下正常工作.

创建一个ByteArray,并将XML写入ByteArray.

FileReference类的save方法需要ByteArray和认保存名称作为两个参数传递.

我希望这有帮助.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念