我在玩游戏中保存数据的.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>
知道如何删除以及如何更改节点和值也可能很有用。
另外,我是否需要从闪存库中导入一些内容才能使用XML完成此操作?我使用的是FlashDevelop,但当我键入xml.
时,FlashDevelop不会像往常一样显示建议。
发布于 2012-01-01 05:44:22
在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;
发布于 2011-12-31 23:45:44
在FlashDevelop中,尝试完全创建一个单独的XML文件。这将为您提供更好的代码提示。
然而,对于XML,我发现Adobe的初级docs on their XML class有大量有用的示例和工具来创建和使用XML对象。
https://stackoverflow.com/questions/8691028
复制相似问题