我正在玩游戏中的数据保存.xml文件。我知道如何将xml对象转换为ByteArray
并将其写入FileReference
。我现在需要知道的是如何从一个空的xml对象(使用var xml:XML = new XML()
)转到一个完全填充的xml对象。
有人可以告诉我用什么函数来添加节点和值吗?具体来说,我需要知道如何制作几个相同类型的节点。这是最终xml应该是什么样子的样本:
<data>
<player>
<money>15831</money>
<shipType>1</shipType>
<ship>
<fuelCur>450</fuelCur>
<energyCur>160</energyCur>
<shieldCur>100</shieldCur>
<armorCur>40</armorCur>
<structCur>15</structCur>
</ship>
</player>
<currentSystem>3</currentSystem>
<currentPlanet>3</currentPlanet>
<date>
<year>2012</year>
<month>10</month>
<day>15</day>
</date>
<missionFlag>true</missionFlag>
<planet id="0">
<population>0</population>
</planet>
<planet id="1">
<population>29827632</population>
</planet>
<planet id="2">
<population>0</population>
</planet>
</data>
了解如何删除以及如何更改节点和值可能很有用。
另外,我是否需要从Flash库中导入一些内容才能使用XML执行此操作?我正在使用FlashDevelop,但是当我输入xml.
时,FlashDevelop不会像通常那样提出建议。
答案 0 :(得分:7)
在AS3中编辑XML实际上非常简单且非常基础 - 它是AS3的核心部分。 AS3会在您调用节点时自动添加节点,如下所示:
var xml:XML = <data />;
xml.player.money = 15831;
xml.player.shiptype = 1;
xml.player.ship.fuelCur = 450;
将导致:
<data>
<player>
<money>15831</money>
<shiptype>1</shiptype>
<ship>
<fuelCur>450</fuelCur>
</ship>
</player>
</data>
然后,要添加同一节点的多个,只需启动所需类型的新XML对象,然后将其附加到您正在处理的XML对象上。或者完全跳过单独的xml对象。根据需要重复多次:
var segment:XML = <planet />;
xml.appendChild(segment); // xml.planet[0]
xml.appendChild(segment); // xml.planet[1]
xml.appendChild(<planet />); // xml.planet[2]
//etc...
然后你可以通过索引为它们添加值。
//Assuming this is the 4th planet you've added...
xml.planet[3].population = 29827632;
答案 1 :(得分:0)
在FlashDevelop中,尝试完全创建单独的XML文件。这将为您提供更好的代码提示。
对于XML,我发现Adobe的基本docs on their XML class有很多有用的示例和工具来创建和使用XML对象。