<acronym id="atkaq"></acronym>
      <bdo id="atkaq"></bdo>

      天才教育網(wǎng)合作機構(gòu) > 培訓(xùn)機構(gòu) >

      東莞設(shè)計培訓(xùn)網(wǎng)

      歡迎您!
      朋友圈

      全國統(tǒng)一學(xué)習(xí)專線 9:00-21:00

      位置:培訓(xùn)資訊 > 體驗Flash MX(10):服務(wù)器/客戶數(shù)據(jù)存儲控制

      體驗Flash MX(10):服務(wù)器/客戶數(shù)據(jù)存儲控制

      日期:2005-12-24 00:00:00     瀏覽:311    來源:東莞設(shè)計培訓(xùn)網(wǎng)

        Flash MX在服務(wù)器/客戶的數(shù)據(jù)處理/存儲控制上下了一些功夫,其中簡單而方便的loadVars對象我們在第二天就看到了其芳蹤,XML/XmlSocket對象還是老瓶裝舊藥,Cookie對象也不過是測試環(huán)境的犧牲品,倒是新的SharedObject對象LocalConnection對象讓我看到Flash MX更多的閃光點,我們可以利用它們實現(xiàn)記錄網(wǎng)站訪問歷史、用戶私人信息存儲、游戲暫存/數(shù)據(jù)緩存等很多應(yīng)用。

        通常,我們在Flash 5中會有幾種方法來存儲我們用過的數(shù)據(jù):如果在無Server的狀態(tài),我們可能用到FScommand+exec+EXE或者FScommand+Save+XML,適用于單機游戲和存放“Cookie”;如果有Server,則需要Loadvar/XML or XmlSocket Send連接服務(wù)器端程序?qū)懭敕?wù)器數(shù)據(jù)庫保存,但在網(wǎng)絡(luò)條件惡劣或者安全措施嚴(yán)謹(jǐn)?shù)那闆r下,這樣的方法可能造成重要數(shù)據(jù)的無法寫入;而Flash MX的SharedObject則可以減緩服務(wù)器存儲速度并有效解決此類問題。

        mySO=new SharedObject(); //make a new SharedObject

        SharedObject對象看起來更像是Cookie對象/MMSave方法和FScommand的Save的結(jié)合產(chǎn)物。在存儲用戶臨時數(shù)據(jù)時我們可能經(jīng)常使用到它,例如:

        //main 1

        i=10
        while(--i){
          var saveme=random(4);   //change text here
          var tmpData=SharedObject.getLocal("testMod");
          if (tmpData.data.data==undefined || tmpData.data.data!=saveme){
            trace("new data saved"+eval(tmpData.data.data=saveme));   //display & save
            tmpData.flush(); //refresh data
          }
          trace(tmpData.data.data);   //display result
          trace("-------------------------------");
        }

        這個例子清楚地說明SharedObject的臨時數(shù)據(jù)存儲功能。首先,隨機產(chǎn)生0-3的隨機數(shù)作為待存數(shù)據(jù),然后通過SharedObject的getLocal方法讀取硬盤中文件為testMod.sol中的數(shù)據(jù),判斷內(nèi)容里面名稱為data的子值是否和待存數(shù)據(jù)相同或者根本無數(shù)據(jù),條件成立則刷新存儲構(gòu)造數(shù)據(jù)data的data值并顯示結(jié)果(“new data saved”)。

        要點:

        先覆蓋原值,然后flush()一次(恰如其名——沖廁所)。

        *顯示當(dāng)前值,如果和原值相同,則不會顯示new data saved,即沒存入硬盤。(圖1)

      (圖1)

        應(yīng)用:

        //prepare functions

        soLoad=function(src){
          return SharedObject.getLocal(src);
        }
        soSave=function(src,sdata){
          var tmpData= SharedObject.getLocal(src);
          for (var i in sdata)
            tmpData.data[i]=sdata[i];
          trace(tmpData.getSize());
          return tmpData.flush();
        }

        //from Demon.S function lib SharedObject.localDeleteAll

        SharedObject.prototype.localDeleteAll=function(){
          for(var i in this.data)
            delete this.data[i];
        return this.flush();
        }

        //main 2

        //init

        var mySo="testMod";
        var aryData={aritcle:"Flashmx new lighting world day10",author:"Demon.S",date:"4/8/2002",from:"DnVsystem",url:""}

        //remote (src);
        //local local data

        var tempSO=SharedObject.getLocal(mySo);
        trace("clearing....garbage:" + (tempSO.LocalDeleteAll() ? "cleaned" : "fail in clearning local data"));

        //load & save

        if (soSave(mySo,aryData) && aryData){
          var mainData=soLoad(mySo);
          if (mainData) for(var i in mainData.data) trace(i+":"+mainData.data[i]);
          else trace("Fail in save ");
        }
        else trace("No Data");

        這個例子基本上覆蓋了SharedObject的本地應(yīng)用的全部常用用法,程序開始的時候我假設(shè)不需要上次的記錄,所以我要清除那些東西,所以使用了localDeleteAll()(from Demon.S function lib)方法來清空我要寫的文件;接著判斷一些必要的糾錯,并把已經(jīng)準(zhǔn)備好的數(shù)據(jù)Object對象aryData用自定義的soSave寫入目標(biāo)mySo。

      (圖2)

        這樣我們就實現(xiàn)了一個簡單過程,其中g(shù)etSize方法可以獲取sharedObject的文件大小,在Flash MX的默認(rèn)是100k,但這個可以由用戶自定義,甚至無限大。

        通過這個例子,我們可以把這樣的過程利用到網(wǎng)站訪問歷史、用戶私人信息存儲、游戲暫存/數(shù)據(jù)緩存等很多應(yīng)用。

        存儲結(jié)構(gòu):

        就好像MX的公用Include路經(jīng)一樣,SharedObject的存儲路經(jīng)也很十分的規(guī)矩:主根目錄在Application DataMacromediaFlash Player內(nèi),存放本機數(shù)據(jù)的數(shù)據(jù)都會在localhost目錄中出現(xiàn),其他網(wǎng)站的數(shù)據(jù)都會在根目錄以域名格式的文件夾出現(xiàn),例如上面我們的例子,我在桌面上做的文件就會放在:localhostDocuments and Settingsdemon.UDSDesktopday10.swf。

        存儲格式不是很復(fù)雜,提取的時候按照特定的規(guī)定簡單的Split截取文件字符并打散成Object,而且數(shù)據(jù)雖然沒有加密,但這樣可以加快提取速度。

        存儲極限:

        在Flash MX中引入的Settings面板有效的解決了部分安全問題,可由用戶自己控制Camera和Microphone并可控制SharedObject的大小,方法:

        System.showSettings(1);

        源文件下載:

        /tutorial/flash_mx/day10.exe
        

        Tips:

        System.showSettings()的用法:

        System.showSettings(0) //顯示Microphone/Camera允許控制;
        System.showSettings(1) //顯示SharedObject存儲限制;
        System.showSettings(2) //顯示Microphone控制;
        System.showSettings(3) //顯示Camera控制。

             若超出0-3范圍時,例如負(fù)數(shù)和大于3的數(shù)則會Return錯誤,并保持上次showSettings()的狀態(tài)。

      如果本頁不是您要找的課程,您也可以百度查找一下:

      亚洲无碼另类精品_亚洲天堂无码高清性视频_欧美日韩一区二区综合_亚洲午夜福利理论片在线贰信

        <acronym id="atkaq"></acronym>
        <bdo id="atkaq"></bdo>

        精品国产电影在线观看91 | 尤物久久免费一区二区三区 | 亚洲欧美在线综合色影视 | 亚洲福利院在线看AV | 一区二区三区欧美视频 | 亚洲日本va在线视频 |