使用Cairngorm开发Flex(一):Cairngrom的构架
写flex也写了2年多了,居然还没有用过pureMVC或者Cairngrom这样的MVC框架,个人觉得有点丢人了。大概看了一下,框架的结构和以前自己开发的时候差不多。但是,虽然是一样,也不够专业啊,于是发了把狠,开始决定研究下Cairngorm,不能落后不是^^。先了解下Cairngorm的分层思想:
什么是Cairngorm
cairngorm中文名是“烟水晶”,不知道“烟水晶”是啥东西,它是一个轻量级的Flex RIA程序开发框架,从而使程序的扩展性、可维护性都大大提高,不要把他看的有多神圣,个人认为其实就是一个开发的骨架,按这个骨架开发的话,可以实现三层解耦,各层次之间使用消息通讯。Cairngorm主要是对开发flex应用程序加入了一系列的设计模式,从而使开发出来的flex程序可扩展性,可维护性的都大大提高。
Cairngorm的构架
借用一张别人的构架图:
可以看到主要有6个组件:
view
front controller
command
business delegate
model locator
service locator
现在来了解一下每一个组件都是负责什么工作的,结合上面的图会更加清晰:
view:我们在这里保存自定义的视图组件,要使用model locator中的数据,是cairngorm event事件产生的地方。
front controller:这个组件主要就是实现映射,他会监听cairngorm event,把响应映射到cairngorm command里面的响应函数上。这有这一个功能。
command:业务逻辑层,功能核心,他负责更新model locator,调用business delegate或者其他command
business delegate:他负责http,web service的方式的通信,由Command创建,返回结果给Command。
model locator:我们程序的运行时项目都保存在这里,必须是可绑定的,而且是单例。
service locator:在这里定义远程访问的对象。
了解了这个框架的构架以后,下一篇文章会提供一个demo,结合demo就能明白cairngorm怎样在项目中被使用了。
相关文档:
///
前面的几乎都是在抄书,是要改一下了
Tips:
1、Flex
Builder项目或ActionScript项目会作为一个容器,容纳所有资产。资产即项目运行所需的各种各样的文件(MXML、AS、图片和XML等)。Flex
Builder会为我们跟踪这些不同的资产,故Flex
Builder要求我们只能在项目内创建或导入这些资产。
2、通常只有一个MXML文件 ......
准备工作
eclipse 软件包 eclipse-jee-galileo-SR2-win32.zip(免安装的)
flex 插件 FB3_WWEJ_Plugin.exe
软件下载就不说了啊 从官网上都可以找到的。
插件安装步骤: 1.把eclipse 软件包 解压到C盘下(具体根据自己需要这不是关键)
&nbs ......
适合初学者理解
1,testflex.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="init()"
minWidth="955 ......
首先~自定义Flex加载的原理其实就是继承mx.preloaders.DownloadProgressBar类..然后重写相关的方法..
package
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.TextField;
import flash.text.TextFormat;
import mx.events.FlexEven ......
package util
{
public class MD5
{
private var hexcase:int = 0;
private var strsize:int = 8;
static private var md5:MD5;
static public function getInstance():MD5
{
if(!md5)
{
md5 = new MD5()
}
return md5;
}
public function getMD5(s:String):String
{
return binl2hex(core_md5(str2binl(s ......