我想保存我的Array的结构,并在下次打开AIR应用程序时加载它。有没有办法将它存储到加密本地存储项目,然后在我重新打开应用程序时获取它?
答案 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中。然后当你把它拉出来反序列化回一个数组。