AS3 & XML - Как я могу построить данные XML в as3? - PullRequest
0 голосов
/ 01 января 2012

Я играю с сохранением .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 не выводит подсказки, как обычно.

Ответы [ 2 ]

7 голосов
/ 01 января 2012

Редактирование XML в AS3 на самом деле довольно просто и довольно просто - это основная часть 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;
0 голосов
/ 01 января 2012

В FlashDevelop попробуйте создать отдельный файл XML полностью.Это даст вам лучшую подсказку кода.

Однако для XML я обнаружил, что элементарные документы Adobe по их классу XML содержат множество полезных примеров и инструментов для создания и использования объектов XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...