[AS2]Flash版本的Cookie类
利用Flash的SharedObject类的功能,来模拟Cookie的功能!
-
-
-
-
-
-
-
- class as2.util.Cookie {
-
- private var _time:Number;
- private var _name:String;
- private var _so:SharedObject;
-
- public function Cookie(name:String,time:Number){
- _name = (name == undefined)?"klstudio":name;
- _time = (time == undefined)?36000:time;
- _so = SharedObject.getLocal(_name,"/");
- }
-
- public function clearTimeOut():Void{
- var obj:Object = _so.data.cookie;
- if(obj == undefined){
- return;
- }
- for(var key in obj){
- if(obj[key] == undefined || obj[key].time == undefined || isTimeOut(obj[key].time)){
- delete obj[key];
- }
- }
- _so.data.cookie = obj;
- _so.flush();
- }
- private function isTimeOut(time:Number):Boolean{
- var today:Date = new Date();
- return time + _time * 1000 < today.getTime();
- }
-
- public function getTime():Number{
- return _time;
- }
- public function getName():String{
- return _name;
- }
- public function clear():Void{
- _so.clear();
- }
- public function put(key:String,value:Object):Void{
- var today:Date = new Date();
- key = "key_"+key;
- value.time = today.getTime();
- if(_so.data.cookie == undefined){
- var obj:Object = {};
- obj[key] = value;
- _so.data.cookie = obj;
- }else{
- _so.data.cookie[key] = value;
- }
- _so.flush();
- }
- public function remove(key:String):Void {
- if (contains(key)) {
- delete _so.data.cookie["key_" + key];
- _so.flush();
- }
- }
- public function get(key:String):Object{
- return contains(key)?_so.data.cookie["key_"+key]:null;
- }
- public function contains(key:String):Boolean{
- key = "key_" + key;
- return _so.data.cookie != undefined && _so.data.cookie[key] != undefined;
- }
- }
调用实例
- import as2.util.Cookie;
-
-
- var cookie:Cookie = new Cookie("myCookie", 24 * 60 * 60 * 1000);
-
- cookie.put("a", {a:"a0001"});
- cookie.put("b", {b:2});
-
- trace(cookie.contains("a"));
-
- cookie.remove("a");
- trace(cookie.contains("a"));
-
- trace(cookie.get("b").b);
-
- cookie.clear();
上一篇:Cookie类(as3.0) 下一篇:自写类整理笔记—Dot类(as3.0)