如何使用 AS3 更新我的外部 XML 文件?

Posted

技术标签:

【中文标题】如何使用 AS3 更新我的外部 XML 文件?【英文标题】:How can I update my external XML file using AS3? 【发布时间】:2015-01-24 12:36:44 【问题描述】:

这是我的外部 xml 文件 db.xml

<?xml version="1.0" encoding="utf-8"?>
<character>
    <main hp="50" lvl="1" dmg="5" def="5" exp="100.00" gold="10"/>
</character>

在这一部分中,我希望更新每个的当前值。

function clickLvl(e:MouseEvent):void

     trace("lvl is clicked!");

     //increment values - works fine
     _data.main.@lvl = int(_data.main.@lvl) + 1;
     _data.main.@hp = int(_data.main.@hp) + 10;
     _data.main.@dmg = int(_data.main.@dmg) + 5;
     _data.main.@def = int(_data.main.@def) + 5;
     this.lvlDis.text = String(_data.main.@lvl);
     this.hpDis.text = String(_data.main.@hp);
     this.dmgDis.text = String(_data.main.@dmg);
     this.defDis.text = String(_data.main.@def);
     this.expDis.text = String(_data.main.@exp);
     this.goldDis.text = String(_data.main.@gold);

     // save/update the values in .xml
     /* 
         CODE HERE :D
     */


当我运行 SWF 文件时,这些值正在更新,但是当我关闭并打开它时,这些值没有保存。如何更新/保存我的 xml 中的值?

【问题讨论】:

【参考方案1】:

您可以使用 FileReference.save() 使用 Flash Player 保存本地文件。但是,这将使用户选择保存文件的位置,而不是您的代码。你也不会知道用户将它保存在哪里。

另一种选择是将您的数据保存到本地SharedObject。这不会更改原始 XML 文件,但可以让您在 SWF 会话之间存储和重新加载数据。另外请记住,SharedObject 数据可以很容易地被用户清除。

使用 AIR,您可以使用 FileFileStream 类创建一个可以保存到本地文件系统的应用程序。

【讨论】:

【参考方案2】:

您可以使用 FileReference 类在本地保存。如果要保存在服务器上,则需要一些服务器端程序来执行此操作。

【讨论】:

以上是关于如何使用 AS3 更新我的外部 XML 文件?的主要内容,如果未能解决你的问题,请参考以下文章

AS3加载外部XML文件

AS3:如何在外部 swf 上的文本字段中使用 Android 默认字体?

AS3-停止缓存外部加载的文件

如何在 php 页面中显示 XML 外部实体?

As3 - 我需要在两个场景中加载 XML 文件吗?

如何使用spring将查询外部化到xml文件