Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 是否可以将数组存储到EncryptedLocalStore项中?空气_Arrays_Actionscript 3_Apache Flex_Air_Flash Builder - Fatal编程技术网

Arrays 是否可以将数组存储到EncryptedLocalStore项中?空气

Arrays 是否可以将数组存储到EncryptedLocalStore项中?空气,arrays,actionscript-3,apache-flex,air,flash-builder,Arrays,Actionscript 3,Apache Flex,Air,Flash Builder,我想保存阵列的结构,并在下次打开AIR应用程序时加载它。有没有办法将其存储到EncryptedLocalStore项目,然后在我重新打开应用程序时获取它?我发现将数组序列化为字符串,然后将该字符串存储在ELS中是最简单的方法。然后,当您将其取出时,将其反序列化回数组。我发现将数组序列化为字符串,然后将该字符串存储在ELS中是最简单的方法。然后,当您将其取出时,将其反序列化回数组。EncryptedLocalStore.setItem()方法在存储内容时采用字节数组。要存储数组,只需使用ByteA

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

我发现将数组序列化为字符串,然后将该字符串存储在ELS中是最简单的方法。然后,当您将其取出时,将其反序列化回数组。

我发现将数组序列化为字符串,然后将该字符串存储在ELS中是最简单的方法。然后,当您将其取出时,将其反序列化回数组。

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);

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,你可以用它来序列化。