Flex 4.5 iOS移动项目:SharedObject问题

时间:2011-10-27 15:27:47

标签: flash flex actionscript shared-objects

我正在尝试在Flex 4.5移动项目中使用SharedObject。 我使用的SDK是4.5.1,AIR版本是2.6.0。

我正在尝试使用以下代码在本地存储应用程序的用户凭据:

var so:SharedObject = SharedObject.getLocal("cred");
so.data.user = txtUser.text;
so.data.password = txtPass.text;
so.data.rememberMe = isLoginRemembered.selected;
var result:String = so.flush();

之后,当应用程序再次加载时, 我想使用以前保存的SharedObject凭据,因此用户不需要每次都输入凭据。

var so:SharedObject = SharedObject.getLocal("cred");
txtUser.text = so.data.user;
txtPass.text = so.data.password;
isLoginRemembered.selected = so.data.rememberMe;

但这似乎不起作用,用户&密码从未保存过,因此为空。 如果我在我的文件系统(Mac OSX)上寻找cred.sol文件,我甚至找不到该文件! 这一切都在“结果”字符串中显示为“刷新”。

我正在Mac上开发此应用,并希望部署到iOS。

有什么建议吗?

2 个答案:

答案 0 :(得分:5)

我解决了这个问题!

我正在使用Flash Builder 4.5开发此应用程序,并为iPhone4进行了调试/运行配置 现在,当您指定运行/调试配置时,可以选中“每次启动时清除应用程序数据”复选框。此复选框需要是UNCHECKED,因为这将在每次启动应用程序时清除SharedObject!

要在Flash Builder 4.5中访问此配置屏幕,请单击“运行/调试”按钮旁边的小箭头,然后单击“运行/调试配置”。导航到指定的配置,取消选中该复选框!

瞧!享受您的iOS SharedObject真棒!

答案 1 :(得分:0)

首先,如果您要存储密码,则应使用加密。我不确定您的LSO问题,但我认为本地加密存储可能是一个答案,我认为iOS和AIR 3.0支持它。您还可以使用加密的SQL Lite数据库。这个答案有一些信息:EncryptedLocalStore not supported

编辑:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/data/EncryptedLocalStore.html

根据文档,除了电视外,所有内容都支持此功能。因此,所有移动设备现在应该具有EncryptedLocalStore,但您需要切换到Air3。