自写自用的三个框架
三套都是自己写项目常用的东西,花了好多时间将它们分离出来,放到google svn里面。不过不分开放了,整在一起命名为face-cell (脸的细包),每个框架代码都不多,而且第三个还有bug。以后项目用到再不停完善。
1.asSkinStyle 皮肤样式管理框架
通过此框架可以把皮肤生成和皮肤属性更改用文本来控制,通过类似于css的语法。
例如:我要生成一个方形,方形里面有一个圆形,再然后通过css改变它们的坐标等属性。
例子代码:
// 下面两段代码的意思是生成一个矩形,矩形里面addChild了一外名为bb的圆形
var xxx:XML = XML(
<root>
<rectSR name="aa" >
<circleSR name="bb" />
</rectSR>
</root>
);
// 这两段代码的意思是设置aa对象的长宽x坐标颜色属性
//设置 aa对象里面的bb对象(name属性为aa,bb)的长宽,颜色属性
var cssStr:String = "" +
"aa{x:100;width:50;height:50;bgColor:0xFF0000};" +
"aa bb{width:30;height:30;bgColor:0x00FF00;y:10};";
// 生成管理器
var mgr:AsSkinStyle = new AsSkinStyle(xxx,cssStr,(new XMLSkinParser()),(new CssStyleParser()));
// 获取根下面名为aa的皮肤
var skin:DisplayObject = mgr.createSkinUI("aa");
addChild(skin);
2.asCachePool 缓存框架
此框架用LRU算法缓存和回收管理缓存。框架分三部份,内存缓存;硬盘缓存;Class,Object互转缓存. 前两个常用于缓存外部加载的swf缓存至本地和内存。第三个本人常用于列表子项的生成管理。本框架代码量不多,易学易用。
例子代码:
// 此缓存会硬盘和内存都存,取的时候会先取内存,无再取硬盘
var rc:RichCache = new RichCache();
var obj:TestObj = new TestObj();
// 加载数据要转二进制才能存放到到硬盘缓存
rc.putInCache("test1",obj);
var res:TestObj = rc.getCache("test1") as TestObj;
3.其它,xml数据绑定框架,资源加载管理框架;这两套框架还不算完善,所以不算吧。用是能用只是解耦没做好,毕竟是半年前写的。
xml绑定框架可以把对象和xml互换(包括引用属性)可以同java的xsream实现数据互换。不过跟服务端交互多半用AMF的多,有取代物,所以自己写的自己都少用…
资源加载管理框架可以映射要加载的资源路径和版本,加载资源的时候会先访问内存、硬盘等。同cachePool连用,不过本框架解耦没做好… 本人还没时间整理这块代码。
SVN地址:https://face-cell.googlecode.com/svn/trunk
浙公网安备 33010602011771号