是否可以将Array存储到EncryptedLocalStore项目中?空气

时间:2011-09-30 12:43:26

标签: arrays actionscript-3 flex air flash-builder

我想保存我的Array的结构,并在下次打开AIR应用程序时加载它。有没有办法将它存储到加密本地存储项目,然后在我重新打开应用程序时获取它?

2 个答案:

答案 0 :(得分:3)

EncryptedLocalStore.setItem()方法在存储内容时采用字节数组。要存储数组,只需使用ByteArray.writeObject()方法(如http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/ByteArray.html#writeObject()中所述)将Array转换为ByteArray - 然后将其保存到ELS。

var array:Array = getArray();
var byteArray:ByteArray = new ByteArray();
byteArray.writeObject(array);
EncryptedLocalStore.setItem('somekey', byteArray);

希望这有帮助。

更新:添加了用于检索数组的代码。

var byteArray:ByteArray = EncryptedLocalStore.getItem('somekey');
var array:Array = byteArray.readObject() as Array;

更新:对于自定义类。

如果要将自己的自定义类序列化为ByteArray,则可能必须在将对象写入ByteArray之前调用registerClassAlias()。例如。

registerClassAlias("com.example.eg", ExampleClass);

答案 1 :(得分:0)

我发现最简单的方法是将Array序列化为字符串,然后将该字符串存储在ELS中。然后当你把它拉出来反序列化回一个数组。