如何在Adobe Flex/AIR应用程序中存储用户首选项

ges*_*ema 3 apache-flex air

在Flex的Flex应用程序中存储用户首选项的标准方法是什么?我需要存储简单的参数,如最近打开的文件列表,窗口位置和大小等.

Jon*_*wny 7

我最喜欢的方法是将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();
}
Run Code Online (Sandbox Code Playgroud)

现在,如果你想保存设置,你就可以了

settings.someSetting = "newValue";
settingsSO.data.settings = settings;
settingsSO.flush();
Run Code Online (Sandbox Code Playgroud)

此解决方案适用于任何浏览器中的BOTH AIR和Flex.较新的浏览器会在清除cookie时删除此数据,因此请注意这一点.


dai*_*ain 5

我认为最灵活的方法是使用本地SQLite数据库.如果需要,它可以为您提供无限的结构化存储和加密.如果您想获得更多信息,请参阅Peter Elst的介绍.