AS3 for ios:如何序列化数组然后保存它

时间:2013-03-27 19:34:02

标签: ios json actionscript-3

我有一个multidimentional数组,我想序列化它,然后使用SharedObjects保存它。 我尝试了很多东西,但每次都有问题。

JSON:不能有类型。

ByteArray:结果不是String,然后SharedObject不想保存它。

可能是SharedObjects不是解决方案的一部分。

所以我的问题是:有没有一个简单的解决方案来保存光盘上的数组并检索这个数组?

感谢。

1 个答案:

答案 0 :(得分:1)

您需要使用flash.net.registerClassAlias

所以,如果我有这样的课程:

package com {
    public class Bob {
        public var myArray:Array;
    }
}

我可以这样做:

registerClassAlias("com.Bob", Bob);

然后,您可以将Bob类对象保存到共享对象中(或者再次检索它们)

完整示例:

//register the class - you only need to do this once in your class
registerClassAlias("com.Bob", Bob);

//Lets save a Bob instance into a shared object
var bob:Bob = new Bob();
bob.myArray = ["blah","blah","blah"];

var bobSO:SharedObject = SharedObject.getLocal("Bob");          
bobSO.data.bob = new Bob();
bobSO.flush();

//now at a later time, let's retrieve it
var bobInstance:Bob;
var bobSO:SharedObject = SharedObject.getLocal("Bob");
if (bobSO.size > 0 && bobSO.data.bob && bobSO.data.bob != undefined) {
    bobInstance = bobSO.data.bob;
}

请记住,您需要注册所有使用的类(如果您的数组中存储了不同的类)。