2008年11月22日

【練習】如何在Flash中實作Save/Load(本地端)

  有些遊戲可以提供即時存檔,有的網站會記錄使用者資訊,在下次拜訪時主動和你打招呼,倒底是怎麼辦到的呢?最簡單的就是使用Flash的SharedObject 將資料放在"flash cookie"裡,如果應用裡有如下的需求,就很適合這個方法:
  • 儲存使用者資訊,下次進入時可以再次讀取出來。
  • 儲存量很小,小於100K(預設值)。
  • 不想使用資料庫、寫檔或搭配其它網頁程式。
  • 簡易、快速且安全性要求不高。


方便的另一面就是會有幾個潛在缺點:
  • 使用者在它台電腦上網時,資料不會跟著轉移。
  • 不是所有電腦都適用,使用者可以設定將可用容量調小或關閉(預設100KB)。
  • 儲存內容有可能會曝露給該電腦的使用者,甚至被修改。

SharedObject的使用方式如下:
var so:SharedObject = SharedObject.getLocal("test");
// test在此算是一個集合, 底下還可以儲存多個變數

if(so.size==0) // size為所佔空間, 0代表Shared object不存在
{
    trace("created...");
    so.data.now = new Date().time; // 存入目前時間於 "now"
    /* 注意:資料都是儲存在.data底下
       要增加Object物件的子變數不用另外宣告, 直接給值就會建立 */
}
trace(so.data.now); // 讀取變數 "now"
trace("used: "+ so.size +" bytes"); // size單位是byte
so.flush(); // 寫回動作, 很重要!
  flash cookie所存的值使用權限是site by site,也就是不同的網站可存取的空間是分開的,就算是看起來相同的flash檔也一樣,所以不用擔心資料被其它flash應用覆寫,或者被惡意網站盜用。


Posted by esabear at 樂多Roodo! │14:25 │回應(0)引用(0)Flash筆記
樂多分類:網路/3C 共同主題:Flash筆記 工具:編輯本文
標籤:練習,Cookie,SharedObject,flash
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/7672497