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

[AS3]as3的Cookie类第三版值得推荐的Cookie类

时间:2012-08-30 15:40kinglong
[AS3]as3的Cookie类第三版值得推荐的Cookie类,非常不错的Cookie类

[AS3]as3的Cookie类第三版值得推荐的Cookie类

  1. package com.klstudio{  
  2.     import flash.net.SharedObject;  
  3.  
  4.     /**  
  5.      * Cookie Cookie类  
  6.      * @author kinglong  
  7.      * @since 2012-1-9  
  8.      */  
  9.     public class Cookie {  
  10.         private var _expires : uint;  
  11.         private var _name : String;  
  12.         private var _so : SharedObject;  
  13.  
  14.         /**  
  15.          * 构造  
  16.          * @param name Cookie名称  
  17.          * @param expires 过期值(单位小时)  
  18.          */  
  19.         public function Cookie(name : String, expires : uint = 24) {  
  20.             _name = name;  
  21.             _expires = Math.max(expires, 1);  
  22.             _so = SharedObject.getLocal(name, "/");  
  23.               
  24.             //clearAllExpires  
  25.             for (var key : String in _so.data) {  
  26.                 if (_so.data[key] is Object) {  
  27.                     var data : Object = _so.data[key];  
  28.                     if (data.hasOwnProperty("expires") && data.hasOwnProperty("value")) {  
  29.                         var nowTime : Number = new Date().getTime();  
  30.                         if (Number(data["expires"]) > nowTime) {  
  31.                             continue;  
  32.                         }  
  33.                     }  
  34.                 }  
  35.                 delete _so.data[key];  
  36.             }  
  37.         }  
  38.  
  39.         /**  
  40.          * Cookie名称  
  41.          */  
  42.         public function get name() : String {  
  43.             return _name;  
  44.         }  
  45.  
  46.         /**  
  47.          * Cookie过期值(单位小时)  
  48.          */  
  49.         public function get expires() : uint {  
  50.             return _expires;  
  51.         }  
  52.  
  53.         /**  
  54.          * 清除所有  
  55.          */  
  56.         public function removeAll() : void {  
  57.             _so.clear();  
  58.         }  
  59.  
  60.         /**  
  61.          * 清除指定属性  
  62.          * @param key Cookie属性  
  63.          */  
  64.         public function remove(key : String) : * {  
  65.             var result : * = get(key);  
  66.             if (result != null) {  
  67.                 delete _so.data[key];  
  68.                 _so.flush();  
  69.             }  
  70.             return result;  
  71.         }  
  72.  
  73.         /**  
  74.          * 获取Cookie属性值  
  75.          * @param key Cookie属性  
  76.          * @return Cookie属性值  
  77.          */  
  78.         public function get(key : String) : * {  
  79.             return contains(key) ? _so.data[key]["value"] : null;  
  80.         }  
  81.  
  82.         /**  
  83.          * 添加Cookie属性  
  84.          * @param key Cookie属性  
  85.          * @param value Cookie属性值  
  86.          * @return 旧的Cookie属性值  
  87.          */  
  88.         public function put(key : String, value : *) : * {  
  89.             var day : Date = new Date();  
  90.             var result : * = get(key);  
  91.             _so.data[key] = {expires:day.getTime() + expires * 1000 * 60 * 60, value:value};  
  92.             return result;  
  93.         }  
  94.  
  95.         /**  
  96.          * Cookie属性是否存在  
  97.          * @param key Cookie属性  
  98.          */  
  99.         public function contains(key : String) : Boolean {  
  100.             if (_so.data.hasOwnProperty(key)) {  
  101.                 if (_so.data[key] is Object) {  
  102.                     var data : Object = _so.data[key];  
  103.                     if (data.hasOwnProperty("expires") && data.hasOwnProperty("value")) {  
  104.                         var nowTime : Number = new Date().getTime();  
  105.                         if (Number(data["expires"]) > nowTime) {  
  106.                             return true;  
  107.                         }  
  108.                     }  
  109.                 }  
  110.                 delete _so.data[key];  
  111.                 _so.flush();  
  112.             }  
  113.             return false;  
  114.         }  
  115.     }  

 

热门文章推荐

请稍候...

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

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