【发布时间】:2011-09-30 12:43:25
【问题描述】:
我想保存 Array 的结构并在下次打开 AIR 应用程序时加载它。有没有办法将它存储到 EncryptedLocalStore 项目,然后在我重新打开应用程序时获取它?
【问题讨论】:
标签: arrays actionscript-3 apache-flex air flash-builder
我想保存 Array 的结构并在下次打开 AIR 应用程序时加载它。有没有办法将它存储到 EncryptedLocalStore 项目,然后在我重新打开应用程序时获取它?
【问题讨论】:
标签: arrays actionscript-3 apache-flex air flash-builder
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);
【讨论】:
我发现最简单的方法是将 Array 序列化为字符串,然后将该字符串存储在 ELS 中。然后,当您将其拉出时,将其反序列化回数组。
【讨论】: