开发者

SharedObject for Arrays of Object. Can't get correct data when restart flash

I have an array that stored some Object with its data, and I try to store it in my computer. If I try to load for the data after I've save the data, I could get a correct data. Exp: [Object Player]

But if I res开发者_开发知识库tart the flash, the data seems to be gone.

What is the problem?

private var sharedObject:SharedObject = SharedObject.getLocal("aquarium", "/");

public function save(n:String):void
    {
        /* player list will only handle the list of all the Players
         * each player data will handle by Player class itself.
         */

        registerClassAlias("Player", Player)
        player = new Player()
        player.newPlayer(n, LATEST_VERSION)
        playerArray.push(player)


        //saving as shared object
        sharedObject.data.aquariumData = playerArray
        sharedObject.flush()

        load()
    }

public function load():void
    {           
        if (sharedObject.size > 0)
        {
            trace("loading player info")
            playerArray = sharedObject.data.aquariumData
            trace(playerArray)
        }
        else
        {
            trace("there's no record")
        }
    }


Can you please provide the code how you obtain the shared object ? Do you use var sharedObject:SharedObject = SharedObject.getLocal("sharedObject"); or something like this ?

Apart from that when calling registerClassAlias("Player", Player) before serialization keep in mind that it must be called before extraction of the data also, so the de-serialization will work correctly and returns array of Player objects not array of Object objects.

And ofc closing the sharedObject is very nice practice after flushing :)

P.S. Your code works as far as i've tested it replacing your Player class with other custom class.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜