as3 工具类分享 CookieMgr

时间:2021-07-21 12:48:42

今天分享一个工具类 CookieMgr,功能就是读取和写入 SharedObject 对象。很简单,都是静态方法,就不多说了

 package org.polarbear.core
{
import flash.net.SharedObject; /**
* 本地缓存管理器
* @author vee <a href="mailto:idoublewei@126.com">idoublewei@126.com</a> 2015-5-8 9:27:37
*/
public class CookieMgr
{
//============================================================================
//PUBLIC
//============================================================================
/**
* 往缓存中写入数据
* @param key 数据对应的键
* @param data 数据
* @param name 对象名称
* @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。
* @return 写入成功返回true,否则返回false
*/
static public function write(key:String, data:*, name:String, localPath:String = null):void
{
if (null == key || "" == key || null == data || null == name) return;
var so:SharedObject = getSO(name, localPath);
if (null == so) return; so.data[key] = data; try
{
so.flush();
}
catch(error:Error) { return; }
}
/**
* 从缓存中读取数据
* @param key 所取的数据的键
* @param name 对象的名称
* @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。
* @return 如果未找到,返回null
*/
static public function read(key:String, name:String, localPath:String = null):*
{
var so:SharedObject = getSO(name, localPath);
if (null == so) return null;
return so.data[key];
}
/**
* 判断缓存中是否存在指定对象的指定数据
* @param key 对象中数据的键
* @param name 对象的名称
* @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。
*/
static public function hasCookie(key:String, name:String, localPath:String = null):Boolean
{
var so:SharedObject = getSO(name, localPath);
if (null == so) return false;
return key in so.data;
}
/**
* 删除缓存数据
* @param name 对象的名称
* @param key 需要删除的数据的键,如果未指定该参数,则删除指定name对象,否则删除name对象中的key数据
* @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。
*/
static public function deleteCookie(name:String, key:String = null, localPath:String = null):void
{
var so:SharedObject = getSO(name, localPath);
if (null == so) return; if (null == key)
{
var keys:Array = [];
for (key in so.data)
{
keys.push(key);
}
for each (key in keys)
{
delete so.data[key];
}
}
else if (key in so.data) delete so.data[key];
}
//============================================================================
//PRIVATE
//============================================================================
/**
* 获取指定名称的缓存对象
* @param name 对象名称
* @param localPath 创建了共享对象的 SWF 文件的完整路径或部分路径,这将确定共享对象的本地存储位置。如果未指定此参数,则使用完整路径。
* @return 获取出错时,返回null
*/
static private function getSO(name:String, localPath:String):SharedObject
{
try
{
var so:SharedObject = SharedObject.getLocal(name, localPath);
return so;
}
catch(error:Error) { return null; }
return null;
}
}
}

CookieMgr