0

多次元配列があり、シリアル化してから、SharedObjects を使用して保存したいと考えています。いろいろ試しましたが、毎回問題があります。

JSON : 型を持つことはできません。

ByteArray : 結果が文字列ではない場合、SharedObject はそれを保存したくありません。

SharedObjects はソリューションの一部ではない可能性があります。

だから私の質問: 配列をディスクに保存し、この配列を取得する簡単な解決策はありますか?

ありがとう。

4

1 に答える 1

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

使用するすべてのクラスを登録する必要があることに注意してください (配列に異なるクラスが格納されている場合)。

于 2013-03-27T19:48:07.783 に答える