首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Flex风靡MVC框架之Cairngorm小试牛刀

2012-11-14 
Flex流行MVC框架之Cairngorm小试牛刀前几天学了下Flex的一MVC流行框架Cairngorm,并自己小试牛刀一把,暂作

Flex流行MVC框架之Cairngorm小试牛刀
   前几天学了下Flex的一MVC流行框架Cairngorm,并自己小试牛刀一把,暂作了一网站后台,通过项目让我现在觉得Cairngorm并不是一个如此神奇的东西,只要我们大家都能按照它走一遍就会有所收获,我们就会对MVC有个基本的了解,也会对Cairngorm有一个初步了解,希望大家通过我的这篇文章也能写出一个demo出来,当然是能在不看我这篇demo或者别人的demo的前提下写出来啦,呵呵,首先要说的是,这个框架并不是一定要在lcds下才能运行的,所以大家可以简单的建个Flex项目就OK了,下面就开始我们的Demo。在最后会把整个工程源码提供出来,欢迎下载。
    我们新建工程,有一个Cairngrom的swc包一定要引进去才行的哈,不然是不能成功的,所以大家可以Cairngrom的官方网站上去下载哈,我在这里提供地址,方便大家去下载http://labs.adobe.com/wiki/index.php/Cairngorm,还有更多的关于Cairngorm框架的资料可以访问http://www,cairngormdoc.org,欢迎和大家一起讨论该框架,欢迎大家加我QQ:234281357,也希望能从大家那学到许多东西。
    先把我刚写的一个小demo的部署结构给大家看看,

下面我会一一讲解每个包中应方的类,每个包的命名都是很规范的,这样大家就很清晰的理解你写的代码的意思,所以建议大家不要轻易改变这么命名。我先说说这里的包,既然是MVC框架的话,当然我们要把哪些是M,哪些是V以及哪些是C给分出来。M主要是模型,我们从命名也许也能猜到了,model和vo应该都归属于该层了,它主要是存放的是数据模型,vo中存的就是普通的数据,一般的话都是最小单位的数据,是不能进行再次分解的数据,代码如下:

 
设成单例类的话我们可以保证系统的数据得到同意,并且我们会把它设置为绑定模式,可以和接下来说的view包下的视图类进行数据绑定。view包下前面说了,是存放相关的视图的,可以是as的也可以是mxml的,看大家的意思了,比如说我们可以存放些自定义的组建或扩展的组件等,下面是LoginPanel.mxml的代码:

接下来我们说说event包,其实这个包我们和接下来说的commands包合并,我在这就分开了,为的是使结构更加清晰哈,在event包下我们存放的是我们自定义的事件,比如下面的LoginEvent.as:
,
看看效果吧,当我们运行的时候界面是这样的:



当我们点击submit时如果成功则出现的结果是这样的:



当我们输入的账号密码错误时,出现如下的界面:


好了,这Cairngorm的小demo就到这了,希望能让大家有所收获...
  看样子flex把你f的很爽啊,,嘿嘿 5 楼 gdljg0460 2008-11-07   很详细的教程,我来顶顶先 6 楼 nijiaben 2008-11-07   gdljg0460 写道
很详细的教程,我来顶顶先

呵呵,谢谢兄弟哈,相互学习啦 7 楼 wuqiangjun_ql 2008-12-10   先学习一下,有问题的话还希望版主多多指导。 8 楼 jiangyaning8 2009-01-06   兄弟不错太棒了 捧场! 9 楼 dxm1986 2009-09-22   假笨这个地方怎么弄的呀?
LoginEvent.as中的构造函数是这样的:
public function LoginEvent(userVO:UserVO)  

LoginCommand类中,

public function execute(event:CairngormEvent):void{  
            var loginDelegate:LoginDelegate=new LoginDelegate (this);  
            var loginEvent:LoginEvent=LoginEvent(event);  
            loginDelegate.login(loginEvent.userVO);  
        }  
黑体部份传进去的参数类型是不是有点问题呀? 10 楼 dxm1986 2009-09-22   dxm1986 写道假笨这个地方怎么弄的呀?
LoginEvent.as中的构造函数是这样的:
public function LoginEvent(userVO:UserVO)  

LoginCommand类中,

public function execute(event:CairngormEvent):void{  
            var loginDelegate:LoginDelegate=new LoginDelegate (this);  
            var loginEvent:LoginEvent=LoginEvent(event);  
            loginDelegate.login(loginEvent.userVO);  
        }  
黑体部份传进去的参数类型是不是有点问题呀?
呵呵.知道看了,看错了.没有一个new 11 楼 surpass_li 2009-10-23   学习了,谢谢分享

热点排行