WEB开发网
开发学院图形图像Flash [AS2]Flash版本模拟Cookie功能的Cookie类 阅读

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

 2012-02-06 12:14:04 来源:本站整理   
核心提示:Cookie类:/** * @link http://www.klstudio.com * @author Kinglong * @usage flash player 7 * @version 0.1 */ classas2.util.Cookie { private var _time:Numb

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();  

Tags:AS Flash 模拟

编辑录入:coldstar [复制链接] [打 印]
赞助商链接