今天分享一个工具类 CookieMgr,功能就是读取和写入 SharedObject 对象。很简单,都是静态方法,就不多说了
1 package org.polarbear.core 2 { 3 import flash.net.SharedObject; 4 5 /** 6 * 本地缓存管理器 7 * @author vee <a href="mailto:idoublewei@126.com">idoublewei@126.com</a> 2015-5-8 9:27:37 8 */ 9 public class CookieMgr 10 { 11 //============================================================================ 12 //PUBLIC 13 //============================================================================ 14 /** 15 * 往缓存中写入数据 16 * @param key 数据对应的键 17 * @param data 数据 18 * @param name 对象名称 19 * @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。 20 * @return 写入成功返回true,否则返回false 21 */ 22 static public function write(key:String, data:*, name:String, localPath:String = null):void 23 { 24 if (null == key || "" == key || null == data || null == name) return; 25 var so:SharedObject = getSO(name, localPath); 26 if (null == so) return; 27 28 so.data[key] = data; 29 30 try 31 { 32 so.flush(); 33 } 34 catch(error:Error) { return; } 35 } 36 /** 37 * 从缓存中读取数据 38 * @param key 所取的数据的键 39 * @param name 对象的名称 40 * @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。 41 * @return 如果未找到,返回null 42 */ 43 static public function read(key:String, name:String, localPath:String = null):* 44 { 45 var so:SharedObject = getSO(name, localPath); 46 if (null == so) return null; 47 return so.data[key]; 48 } 49 /** 50 * 判断缓存中是否存在指定对象的指定数据 51 * @param key 对象中数据的键 52 * @param name 对象的名称 53 * @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。 54 */ 55 static public function hasCookie(key:String, name:String, localPath:String = null):Boolean 56 { 57 var so:SharedObject = getSO(name, localPath); 58 if (null == so) return false; 59 return key in so.data; 60 } 61 /** 62 * 删除缓存数据 63 * @param name 对象的名称 64 * @param key 需要删除的数据的键,如果未指定该参数,则删除指定name对象,否则删除name对象中的key数据 65 * @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。 66 */ 67 static public function deleteCookie(name:String, key:String = null, localPath:String = null):void 68 { 69 var so:SharedObject = getSO(name, localPath); 70 if (null == so) return; 71 72 if (null == key) 73 { 74 var keys:Array = []; 75 for (key in so.data) 76 { 77 keys.push(key); 78 } 79 for each (key in keys) 80 { 81 delete so.data[key]; 82 } 83 } 84 else if (key in so.data) delete so.data[key]; 85 } 86 //============================================================================ 87 //PRIVATE 88 //============================================================================ 89 /** 90 * 获取指定名称的缓存对象 91 * @param name 对象名称 92 * @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。 93 * @return 获取出错时,返回null 94 */ 95 static private function getSO(name:String, localPath:String):SharedObject 96 { 97 try 98 { 99 var so:SharedObject = SharedObject.getLocal(name, localPath); 100 return so; 101 } 102 catch(error:Error) { return null; } 103 return null; 104 } 105 } 106 }