var xml:XML = <myXml> <item prop="1" /> <item prop="2" /> </myXml>;
我需要在本地硬盘(项目目录)中保存为xml文件.
是否可以保存as3本身?
我把它扔在一起,当然你可以使用以下作为极简主义的例子保存到.XML.
原文链接:https://www.f2er.com/xml/292121.htmlpackage 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和默认保存名称作为两个参数传递.
我希望这有帮助.