2012-12-23 64 views
1

我已經搜索了很長一段時間這個問題的答案,但似乎無法找到確切的答案。基本上我想要做的是獲取數組並將其存儲在共享對象中,然後讀取存儲在該對象中的內容,並在腳本啓動時將其放回數組列表中(希望這有意義)。AS3:將數組存儲在共享對象中

目前,我被認爲共享對象只能存儲多個變量,所以我不知道如何去添加一個數組。

數組本身聲明如下所示:

var lvl1highScores:Array = new Array(); 

而且它可以由用戶每次他們在每個級別因此達到了很高的分數時被添加到:

lvl1highScores.push({score:int(vinylCollected) , player:String(highScoreInput.text)}); 
lvl1highScores.sortOn("score", Array.DESCENDING | Array.NUMERIC); 

我希望這是足夠的信息供某人幫忙。如果我無法將整個數組存儲在共享對象中,還有其他方式來存儲這些信息嗎?

乾杯

回答

2

你應該能夠做到這一點,

要寫入共享對象

//returns the mySharedObject if it exists, if not creates a new one 
var so:SharedObject = SharedObject.getLocal("mySharedObject"); 
//take your array and put it on the so 
so.data.storedArray = myArray; 
//save the data 
so.flush(); 

讀回別處

//get the mySharedObject back 
var so:SharedObject = SharedObject.getLocal("mySharedObject"); 
//get your array back 
myArray = so.data.storedArray; 
+0

哈哈,我敢肯定,我以前嘗試過,它沒有工作,但儘管如此 - 它的工作原理!歡呼你的幫助,非常感謝 –

2

我發現一些有用的我要添加到上面的代碼中:

To read it back elsewhere 

//get the mySharedObject back 
var so:SharedObject = SharedObject.getLocal("mySharedObject","/"); 
//get your array back 
myArray = so.data.storedArray; 

爲避免無意中限制對共享對象的訪問,請使用localpath參數。 - 這是「/」