Adobe Air - пользовательские настройки XML - PullRequest
0 голосов
/ 15 марта 2012

Мне нужно создать и прочитать XML-файл пользовательских настроек с помощью Adobe Air.Он будет содержать около 30 узлов.

<id>18981</id>
<firstrun>false</firstrun>
<background>green</background>
<username>stacker</username>
...

Какой хороший способ сделать это?

1 Ответ

2 голосов
/ 15 марта 2012

Запишите «синтаксический анализатор XML», который считывает значения и знает типы данных для преобразования на основе «модели сохранения настроек». Таким образом, в основном вы пишете метод / класс для записи данных из «модели сохранения настроек» в XML, а затем пишете метод / класс для чтения из XML в «модель сохранения предпочтений», вы можете использовать descriptionType для обоих. Тип описания описывает XML-описание свойств классов моделей, а также типов этих свойств и доступности (чтение / запись, только чтение, только запись). Для всех свойств, которые доступны для чтения / записи, вы должны сохранить их в выводе XML, при чтении их обратно вы будете делать то же самое, за исключением того, что вы можете использовать свойство type из вывода descriptionType, чтобы определить, нужно ли делать строку для логического выражения. преобразование (if (boolValue == "true")) и преобразование строки в число, parseInt или parseFloat. В конечном итоге вы можете сохранить XML в локальной базе данных SQL, если хотите сохранить историю, или просто сохранить текущие настройки в виде плоского файла (используя FileReference или в AIR вы можете использовать FileStream для прямой записи в местоположение).

Edit:

Согласившись с комментарием Джошуа ниже, локальные общие объекты были первой вещью, о которой я подумал, увидев это, вы можете избавить от необходимости писать анализатор / считыватель XML, поскольку он будет обрабатывать сериализацию / десериализацию объектов для вас (но вручную смотреть на LSO, наверное, некрасиво) ... во всяком случае, я сделал нечто подобное для другого моего проекта, я попытался удалить соответствующий код, чтобы отметить, что в моем примере я не использовал тип описания, но общая концепция заключается в так же: http://shaunhusain.com/OnePageSaverLoader/index.php

...