Arrays 是否可以将数组存储到EncryptedLocalStore项中?空气
我想保存阵列的结构,并在下次打开AIR应用程序时加载它。有没有办法将其存储到EncryptedLocalStore项目,然后在我重新打开应用程序时获取它?我发现将数组序列化为字符串,然后将该字符串存储在ELS中是最简单的方法。然后,当您将其取出时,将其反序列化回数组。我发现将数组序列化为字符串,然后将该字符串存储在ELS中是最简单的方法。然后,当您将其取出时,将其反序列化回数组。EncryptedLocalStore.setItem()方法在存储内容时采用字节数组。要存储数组,只需使用ByteArray.writeObject()方法(如中所述)将数组转换为ByteArray,然后将其保存到ELSArrays 是否可以将数组存储到EncryptedLocalStore项中?空气,arrays,actionscript-3,apache-flex,air,flash-builder,Arrays,Actionscript 3,Apache Flex,Air,Flash Builder,我想保存阵列的结构,并在下次打开AIR应用程序时加载它。有没有办法将其存储到EncryptedLocalStore项目,然后在我重新打开应用程序时获取它?我发现将数组序列化为字符串,然后将该字符串存储在ELS中是最简单的方法。然后,当您将其取出时,将其反序列化回数组。我发现将数组序列化为字符串,然后将该字符串存储在ELS中是最简单的方法。然后,当您将其取出时,将其反序列化回数组。EncryptedLocalStore.setItem()方法在存储内容时采用字节数组。要存储数组,只需使用ByteA
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);
EncryptedLocalStore.setItem()方法在存储内容时采用字节数组。要存储数组,只需使用ByteArray.writeObject()方法(如中所述)将数组转换为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);
我很想知道这对你是否有效。我过去没有用过这种方法。虽然我会指出,2年多前我是在一个HTML/JS AIR应用程序上做这件事的,所以可能是我做错了,它对JS对象不起作用,或者这是一个早已修复的错误。我对ByteArray非常陌生,通常只是as3上的数组。你能为我添加一种方法来找回阵列吗?如果我分析正确,您发布的方法只用于存储数组。@JasonDean我以前使用过这个方法,它对我有效。如果使用要保存的自定义对象,则需要在将该对象转换为ByteArray之前调用registerClassAlias()。例如,registerClassAlias(“com.example.eg”,ExampleClass);我很想知道这对你是否有效。我过去没有用过这种方法。虽然我会指出,2年多前我是在一个HTML/JS AIR应用程序上做这件事的,所以可能是我做错了,它对JS对象不起作用,或者这是一个早已修复的错误。我对ByteArray非常陌生,通常只是as3上的数组。你能为我添加一种方法来找回阵列吗?如果我分析正确,您发布的方法只用于存储数组。@JasonDean我以前使用过这个方法,它对我有效。如果使用要保存的自定义对象,则需要在将该对象转换为ByteArray之前调用registerClassAlias()。例如,registerClassAlias(“com.example.eg”,ExampleClass);实际上如何“序列化”和“反序列化”数组?使用什么功能?等等。如果你有as3corelib,你可以用它来序列化。实际上如何“序列化”和“反序列化”数组?使用什么功能?等等。如果你有as3corelib,你可以用它来序列化。