·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS2]Flash版本模拟Cookie功能的Cookie类

时间:2011-09-28 08:39klstudio.com
[AS2]Flash版本模拟Cookie功能的Cookie类,利用Flash的SharedObject类的功能,来模拟Cookie的功能!

Cookie类:

  1. /**  
  2. * @link http://www.klstudio.com  
  3. * @author Kinglong  
  4. * @usage flash player 7  
  5. * @version 0.1  
  6. */  
  7.  
  8. class  as2.util.Cookie {  
  9.       
  10.     private var _time:Number;  
  11.     private var _name:String;  
  12.     private var _so:SharedObject;  
  13.       
  14.     public function Cookie(name:String,time:Number){          
  15.         _name = (name == undefined)?"klstudio":name;  
  16.         _time = (time == undefined)?36000:time;  
  17.         _so = SharedObject.getLocal(_name,"/");  
  18.     }  
  19.       
  20.     public function clearTimeOut():Void{  
  21.         var obj:Object = _so.data.cookie;  
  22.         if(obj == undefined){  
  23.             return;  
  24.         }  
  25.         for(var key in obj){  
  26.             if(obj[key] == undefined || obj[key].time == undefined || 

            isTimeOut(obj[key].time)){  
  27.                 delete obj[key];  
  28.             }  
  29.         }  
  30.         _so.data.cookie = obj;  
  31.         _so.flush();  
  32.     }  
  33.     private function isTimeOut(time:Number):Boolean{  
  34.         var today:Date = new Date();          
  35.         return time + _time * 1000 < today.getTime();  
  36.     }  
  37.       
  38.     public function getTime():Number{  
  39.         return _time;  
  40.     }     
  41.     public function getName():String{  
  42.         return _name;  
  43.     }  
  44.     public function clear():Void{  
  45.         _so.clear();  
  46.     }     
  47.     public function put(key:String,value:Object):Void{  
  48.         var today:Date = new Date();  
  49.         key = "key_"+key;  
  50.         value.time = today.getTime();  
  51.         if(_so.data.cookie == undefined){  
  52.             var obj:Object = {};  
  53.             obj[key] = value;  
  54.             _so.data.cookie = obj;  
  55.         }else{  
  56.             _so.data.cookie[key] = value;  
  57.         }  
  58.         _so.flush();  
  59.     }  
  60.     public function remove(key:String):Void {  
  61.         if (contains(key)) {  
  62.             delete _so.data.cookie["key_" + key];  
  63.             _so.flush();  
  64.         }  
  65.     }  
  66.     public function get(key:String):Object{       
  67.         return contains(key)?_so.data.cookie["key_"+key]:null;  
  68.     }     
  69.     public function contains(key:String):Boolean{  
  70.         key = "key_" + key;   
  71.         return _so.data.cookie != undefined && _so.data.cookie[key] != undefined;  
  72.     }  

调用代码 : 

  1. import as2.util.Cookie;  
  2.  
  3. //创建cookie对象,超时单位为毫秒;  
  4. var cookie:Cookie = new Cookie("myCookie", 24 * 60 * 60 * 1000);  
  5. //添加key值;  
  6. cookie.put("a", {a:"a0001"});  
  7. cookie.put("b", {b:2});  
  8. //查key是否存在;  
  9. trace(cookie.contains("a"));  
  10. //删除key;  
  11. cookie.remove("a");  
  12. trace(cookie.contains("a"));  
  13. //获取key的值  
  14. trace(cookie.get("b").b);  
  15. //清除cookie所有的值;  
  16. cookie.clear();  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器