日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

AS3.0编程 So本地数据存储(“超级cookies”)--AS3:Local SharedObject

發布時間:2023/11/27 生活经验 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AS3.0编程 So本地数据存储(“超级cookies”)--AS3:Local SharedObject 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Flash影片運行過程中,大多數的數據都存儲于影片本身,一旦影片被關閉,這些數據也就從內存中被清除掉,下次運行時,數據將從頭開始。若想存儲數據或者讓客戶端的多個影片共享同一組數據,就要想辦法把數據存儲在Flash播放器之外。?
在ActionScript 3.0中,SharedObject類實現了在客戶端機器中持久性存儲數據。有兩種類型的共享對象:本地和遠程。本節主要介紹在本地儲存數據。?

創建ShareObject對象

Flash的ShareObject對象一般簡稱為SO,類似于Web瀏覽器中的cookies。它們被一些開發者稱為“超級cookies”,因為SO可以存儲大量數據,且存儲和讀取的都是原生的ActionScript類型數據。?
ShareObject 對象默認的空間大小100KB,用戶可以通過FlashPlayer'sSettingsManager控制的使用空間大小,來嚴格限制被使用的空間。存儲在本地計算機的SO文件是一種二進制文件,擴展名為.sol。不同的SWF影片可以通過flash.net.SharedObject類進行讀寫.sol文件。?
創建的.sol文件被放置在Flash播放器對應的應用程序數據目錄,以Windows為例,目錄為:C:\Documents and Settings\Administrator\Application Data\Macromedia\Flash Player\#SharedObjects,在此主目錄下使用隨機字符命名目錄,記錄數據。?

向SO上寫入數據

要實現添加數據到SO上,只需給SO對象的data屬性添加屬性值。共享對象SO有個內建的屬性data,data屬性類型為object,因而可以添加任何信息上去。如下面的示例代碼所示。?
//存儲username值給so共享對象?
so.data.username= "浪子嘯天";?
注意:既不能直接向SO共享對象賦值,也不能直接向SO共享對象的data屬性賦值,這樣的結果都是錯誤的。?
如下面的兩行寫入數據的方法都是錯誤的,錯誤代碼如下所示。?
so.username="浪子嘯天";?
so.data="浪子嘯天";?

讀取SO數據

要實現在客戶端讀取SO數據,原理很簡單。因為這些持久性數據都保存在共享對象的data屬性里,只需要訪問Data對象的相關屬性就Ok了。?
下面的示例實現讀取SO中儲存的數據,代碼如下所示。?
var so:SharedObject=SharedObject.getLocal("test")?
//將數據寫入so?
so.data.username="浪子嘯天"?
so.data.sex="男"?
//寫入數據?
so.flush()?
//讀取so中的username?
var user=so.data.username?
trace(user)//輸出:浪子嘯天?
trace(so.data.sex)//輸出:男?

刪除保存的SO共享數據

要實現刪除共享對象中的某個屬性值或者刪除整個共享對象,需要使用兩種不同的方法:用delete刪除共享對象的data屬性中的值;使用clear()方法清除整個共享對象。?
下面的示例使用delete關鍵字刪除SO共享對象的data對象中的sex屬性,代碼如下所示。?
var so:SharedObject=SharedObject.getLocal("test")?
//將數據寫入so?
so.data.username="浪子嘯天"?
so.data.sex="男"?
//寫入數據?
so.flush()?
//刪除so中的sex屬性?
delete so.data.sex?
trace(so.data.sex)//輸出:undefined,說明刪除成功?
trace(so.data.username)//輸出:浪子嘯天

=================================================================
 在 AS3 里的Local SharedObject用法跟 AS2 是一樣的。
SO存儲在計算機的一個文件里面,跟Cookie很相似。路徑是C:\Documents and Settings\用戶名\Application Data\Macromedia\Flash Player\#SharedObjects\

基本用法:???


//定義一個SO?
????var?mySO:SharedObject;?
????//獲取本地的一個SO?
????mySO?=?SharedObject.getLocal("beniSO");?
????//在SO里面存儲數據?
????mySO.data.name?=?"Beni";?
????mySO.data.sex?=?"sex";?
????//獲取SO里面的數據?
????trace?("name?is:?"?+?mySO.data.name);?
????trace?("sex?is:?"?+?mySO.data.sex);



注意:本地Flash存儲設置不能為“無”,而且容量未滿。
?????


Local SharedObject使用起來有不少限制,所以都是用來記錄一些不大重要的信息。例如登陸時的用戶名之類的。
現在不少Flash游戲有存檔,絕大不分也是用這個SO。


AS3 游戲存檔


我不知道大多數的Flash游戲是不是有本地存檔,但是我的游戲確實碰到了
在這里向各位高手請教一下,AS3中如何讀寫本地文件,我知道Air中有flash.filesystem這個包
但是在 Flash Player 中(在瀏覽器中運行的 SWF 文件中)未公開這些屬性和方法
有高手能給點思路嗎?


在網頁中的flash游戲,如果需要用到本地存儲,有兩種方式考慮:
1、Cookie相關的。平常網頁相關的存儲都可以使用,通過flash調用頁面js實現。
2、SharedObject。這是flash自帶的存儲功能,默認大小為100k。


SharedObject對象的使用方法不詳細介紹,類的方法屬性可以參考:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html
例子:


??
try {
? ? var so:SharedObject = SharedObject.getLocal("flash_cookie", "/");
? ? so.data["test"] = true;
? ? trace(so.data["test"]);
}catch (e:Error) { }

總結

以上是生活随笔為你收集整理的AS3.0编程 So本地数据存储(“超级cookies”)--AS3:Local SharedObject的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。