測試環境:
1. Windows XP Pro
2. Flex Builder 2.0.1
ShareObject 類別允許你將小量資料儲存在用戶端電腦。ShareObject 有點類似瀏覽器的 Cookie。應用程式只能存取屬於自己的資料,且應用程式必須和資料同屬於同一個網域(Domain)。但是這個資料並不能傳送到伺服器端。
ShareObject 提供下面的方法
| 從 ShareObject 中清空所有的資料,並從檔案磁碟刪除 ShareObject 檔案。 |
| 將 ShareObject 直接寫入用戶端的檔案 |
| 回傳 ShareObject 所在的 Domain。假如不存在,這個方法會在用戶端建立一個新的 ShareObject |
| Gets the size of the SharedObject file, in bytes. The default size limit is 100 KB, although it can be larger if the client allows it. |
屬性:
| (唯讀)儲存在 ShareObject 中的資料 |
| 當 ShareObject 發生警告、錯誤或其他訊息時會觸發這個事件 |
建立 ShareObject 的語法如下:
SharedObject.getLocal("objectName" [, pathname]): SharedObject
下面是簡單的範例:
public var mySO:SharedObject;
mySO = SharedObject.getLocal("preferences");
上述如果在 local 端執行,Flash Player 會產生 preferences.sol 到下面路徑
c:/Documents and Settings/username/Application Data/Macromedia/Flash Player/#SharedObjects/一串數字/localhost/應用程式路徑/SWF 檔名/
以我的情況來說,我的帳號是 Administrator,SWF 放在 "C:/Documents and Settings/Administrator.MYCHAT-1A793BE7/My Documents/Flex Builder 2/Example/bin",preferences.sol 會存放到下面路徑
C:/Documents and Settings/Administrator.MYCHAT-1A793BE7/Application Data/Macromedia/Flash Player/#SharedObjects/96FX85HW/localhost/Documents and Settings/Administrator.MYCHAT-1A793BE7/My Documents/Flex Builder 2/Example/bin/Example.swf/
註:上述路徑和文件所述有出入,不知道是否為文件錯誤。
註:如果你只有執行上述的 getLocal 並不會立即產生 *.sol,你可以在後面加上一行 mySO.flush() 利即將資料寫入檔案。
註:如果程式是在網路上執行,則路徑結構會變為
c:/Documents and Settings/username/Application Data/Macromedia/Flash Player/#SharedObjects/一串數字/web_domain/應用程式路徑/SWF 檔名/
如:
C:/Documents and Settings/Administrator.MYCHAT-1A793BE7/Application Data/Macromedia/Flash Player/#SharedObjects/96FX85HW/www.box.net/static/flash/box_explorer.swf/
註:假如 getLocal 沒有提供 sol 名稱,則會使用 undefined.sol
註:預設情況 ShareObject 在每個網域只能儲存 100KB,如果超過時,Flash Player 會要求使用者允許儲存超過 100KB 的資料
註:也可以使用 getLocal 的第二個參數來指定儲存位置,但必須是目前網域的子目錄
註:可以一次建立多個 ShareOjbect
存取 ShareObject 資料的方法很簡單,只要透過 data 屬性,後面接需要儲存的變數名稱,如下:
// 寫入資料
mySO.data.name = "Chui-Wen Chiu";
mySO.data.age = 27;
// 讀取資料
trace( mySO.data.name )
SharedObject 範例:紀錄登出時間 點一下 Log out 在重新載入 Flash 會看到上次登入時間 |
<?xml version="1.0"?> |