首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex共享对象存取本土数据实例(中级)

2012-11-07 
flex共享对象存取本地数据实例(中级)1、shareObj.mxml?xml version1.0 encodingutf-8?s:Applicati

flex共享对象存取本地数据实例(中级)
1、shareObj.mxml 

<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    xmlns:s="library://ns.adobe.com/flex/spark"    xmlns:mx="library://ns.adobe.com/flex/halo"   minWidth="1024" minHeight="768"   creationComplete="init();"><fx:Script><![CDATA[private var sharedObj:MySharedObj;private function init():void{sharedObj = new MySharedObj();}]]></fx:Script><mx:Button id="readBut" x="100" y="100" label="read" click="trace(sharedObj.myReadValue());"/><mx:Button id="saveBut" x="200" y="100" label="save" click="sharedObj.mySaveValue('tenten', 10000);"/><mx:Button id="clearBtn" x="300" y="100" label="clear" click="sharedObj.myClearValue();"/></s:Application>



2、 MySharedObj.as
package{import flash.events.NetStatusEvent;import flash.net.SharedObject;import flash.net.SharedObjectFlushStatus;public class MySharedObj{private var sharedObj:SharedObject;public function MySharedObj(){sharedObj = SharedObject.getLocal("haha");    //生成一个本地共享对象sharedObj,haha是要保存在本地的文件的名字,后缀名为.sol}/*read  if not then this value will return null*/public function myReadValue():String{var str:String = sharedObj.data.selfValue;var arr:Array = sharedObj.data.selfArr;trace(sharedObj.size);    //共享对象当前所存储的总字节大小(读取效率低,尽量别用)/** * 如果当前共享对象没有存储东西(即size属性值为0),或执行了clear方法,所有的自定义属性都没了 * 则所有[sharedObj.data.自定义属性]的值都为undefined;如sharedObj.data.selfValue **/trace(sharedObj.data);    //output [object Object]trace(sharedObj.data.selfValue);    //if(size==0){output tenten}else{undefined} //trace(sharedObj.data.selfArr[0].B);    //output helloworld劳动节return "*****";}/*save*/public function mySaveValue(sharedValue:String, bufLength:Number):void{            sharedObj.data.selfValue = sharedValue;    //存储了一个字符串/** * SharedObject对象可以保存各种格式的数据 * 一种格式的数据对象都可以用一种SharedObject对象(sharedObj.data)的自定义属性来存储(如selfAtt属性存储了一个数组arr)。 * 如果一个共享对象的属性目前还没存储数据,则此属性的返回值为undefined * */var arr:Array = new Array();arr.push({A:"你好呀", B:"helloworld劳动节", C:"108"});         //这是一个数据结构(要保存的数据1) sharedObj.data.selfArr = arr;    //selfArr是自定义乱起的共享对象(sharedObj.data)的属性名(乱起的前提是在保存的时候乱)/**显示的把共享对象写入本地磁盘(flush方法),不然可能会把共享对象当做垃圾回收掉**/var flushStatus:String = null;try{flushStatus = sharedObj.flush(bufLength);    //bufLength表示缓冲值  }catch(error:Error){trace("error message: " + error.message);}if(flushStatus != null){    /*判断共享对象是否正确的写入了本地磁盘*/switch(flushStatus){case SharedObjectFlushStatus.PENDING:sharedObj.addEventListener(NetStatusEvent.NET_STATUS, nowFlushStatus);break;case SharedObjectFlushStatus.FLUSHED:trace("access saved");break;}}}/*clear*/public function myClearValue():void{/** * clear方法 * 对于本地共享对象,清除所有数据并从磁盘删除共享对象。 * 对共享对象的引用仍然处于活动状态,但其数据属性(sharedObj.data的所有属性)被删除。 * */sharedObj.clear();    delete sharedObj.data.savedValue;}/*SharedObjectFlushStatus.PENDING*/private function nowFlushStatus(event:NetStatusEvent):void{switch(event.info.code){case "SharedObject.Flush.Success":    //flush auccesstrace("User granted permission, value saved");break;case "SharedObject.Flush.Failed":    //flush failedtrace("User denied permission, value not saved");break;}sharedObj.removeEventListener(NetStatusEvent.NET_STATUS, nowFlushStatus);}}}

热点排行