Как сохранить пользовательские настройки в приложении Adobe Flex / AIR - PullRequest
3 голосов
/ 14 июня 2011

Какой стандартный способ хранения пользовательских настроек в приложении Flex для AIR? Мне нужно хранить простые параметры, такие как списки недавно открытых файлов, положения и размеры окон и т. Д.

Ответы [ 4 ]

7 голосов
/ 14 июня 2011

мой любимый способ сделать это - объединить VO с LSO (локальный общий объект).Если у вас много настроек, это не очень хорошо работает.Преимущество состоит в том, что вы получаете строго типизированный объект настроек, который является поэтому привязываемым и имеет самоанализ и завершение кода .

Круто то, что для управления LSO достаточно всего 5 строк кода.Кроме того, довольно просто управлять локальным зашифрованным хранилищем, если вы хотите хранить какие-либо конфиденциальные данные.

registerClassAlias("SettingsVO",SettingsVO);  //This lets us store a typed object in LSO
var settings:SettingsVO;
var settingsSO = SharedObject.getLocal("settings");   
//Check to make sure settings exist... if not, create a new settings object
if( settingsSO.size && settingsSO.data && settingsSO.data.settings){
    settings = settingsSO.data.settings as SettingsVO;
}else{
    settings = new SettingsVO();
}

Теперь, если вы хотите сохранить настройки, вы просто делаете

settings.someSetting = "newValue";
settingsSO.data.settings = settings;
settingsSO.flush();

И это решение работает на обоих AIR и Flex в любом браузере.Новые браузеры будут удалять эти данные при очистке куки, так что будьте осторожны.

5 голосов
/ 14 июня 2011

Я думаю, что наиболее гибкий способ - использовать локальную базу данных SQLite.Это дает вам неограниченное, структурированное хранилище и шифрование при необходимости.См. введение Питера Элста , если вы хотите получить больше информации.

4 голосов
/ 14 июня 2011

Не существует «стандартного» способа, но существует множество подходов, все из которых сводятся к сохранению пользовательских настроек, затем их загрузке во время выполнения на основе некоторых учетных данных uesr, а затем изменению приложения на основе этих предпочтений.

Вы можете хранить их в базе данных на стороне сервера, такой как SQL Server или MySQL;Затем Flex вызовет службу, которая запрашивает базу данных и возвращает данные.

Вы можете сохранить их как Shared Объекты , которые являются Flash-версией файлов cookie браузера.(Я верю, что они также работают с приложениями AIR).Это может быть громоздким с большим количеством данных.

Вы можете сохранить их в XML-документе и выбросить их на сервер.Концептуально это не сильно отличается от хранения их в базе данных на стороне сервера;но может стать очень утомительным, если у вас много пользователей.

Вы также можете хранить их в приложении AIR локально, используя базу данных SQLite.SQLite - это встроенная база данных, используемая в Adobe AIR.

2 голосов
/ 25 февраля 2013

Я не беспокоюсь ни о каких причудливых вещах.Просто сохраните его в XML-файле в каталоге приложения.Готово.

Filestream выдает ошибку, если вы пытаетесь сохранить ее с помощью File.applicationDirectory.Я просто обманываю программу ...

var trickFile:File = File.applicationDirectory;
var file:File = new File(trickFile.nativePath + mySettings.xml);

Воздух падает на это каждый раз.

...