`
lzstone
  • 浏览: 92725 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Cairngorm框架应用

    博客分类:
  • flex
阅读更多

首先在项目中加入Cairngorm.swc文件

一、建立一个valueObject类

package com.dream.valueObjects
{
    public class User
    {
        public var username:String;
        public var password:String;
        public var return_Check_Login:String;
       
        public function User()
        {
            this.username = "";
            this.password = "";
            this.return_Check_Login = "";
        }

    }
}

 

二、ModelLocator 数据托管

package com.dream.model
{
    import com.dream.valueObjects.User;
   
    [Bindable]
    public class ModelLocator
    {
        public var user:User = new User();
        private static var __instance:ModelLocator = null;
       
        public static function instance():ModelLocator{
               if(null == __instance){
                  __instance = new ModelLocator();
               }
               return __instance;
        }

    }
}

三、创建Event事件

package com.dream.business.events.login
{
    import com.adobe.cairngorm.control.CairngormEvent;
    import com.dream.valueObjects.User;
   
    public class CheckLoginUserEvent extends CairngormEvent
    {
        public static var EVENT_ID:String = "checkLoginUser";
       
        public var user:User;
       
        public function CheckLoginUserEvent(user:User)
        {
            super(EVENT_ID);
            this.user = user;
        }

    }
}

四、信息接收

package com.dream.business.delegates
{
    import com.adobe.cairngorm.business.ServiceLocator;
    import com.dream.model.ModelLocator;
    import com.dream.valueObjects.User;
   
    import mx.rpc.AsyncToken;
    import mx.rpc.IResponder;
    import mx.rpc.remoting.RemoteObject;
   
    public class CheckLoginUserDelegate
    {
       
        private var __locator:ServiceLocator = ServiceLocator.getInstance();
       
        private var __remote:RemoteObject;
       
        private var __responder:IResponder;
       
        public function CheckLoginUserDelegate(responder:IResponder)
        {
            __remote = __locator.getRemoteObject("checkLogin");
            __responder = responder;
        }
       
       
       
        public function returnCheckLoginUser(user:User):void{
               var token:AsyncToken = __remote.checkUser(user.username,user.password);
               token.addResponder(__responder);
        }

    }
}

五、信息处理

package com.dream.business.commands
{
    import com.adobe.cairngorm.commands.ICommand;
    import com.adobe.cairngorm.control.CairngormEvent;
    import com.dream.business.delegates.CheckLoginUserDelegate;
    import com.dream.business.events.login.CheckLoginUserEvent;
    import com.dream.model.ModelLocator;
    import com.dream.valueObjects.User;
   
    import flash.net.URLRequest;
    import flash.net.navigateToURL;
   
    import mx.controls.Alert;
    import mx.rpc.IResponder;
    import mx.rpc.events.ResultEvent;
   
    public class CheckLoginUserCommand implements ICommand,IResponder
    {
        public function execute(event:CairngormEvent):void{
            var checkLoginUserEvent:CheckLoginUserEvent = event as CheckLoginUserEvent;
            var checkLoginUserDelegate:CheckLoginUserDelegate = new CheckLoginUserDelegate(this);
            checkLoginUserDelegate.returnCheckLoginUser(checkLoginUserEvent.user);
        }
       
       
        public function result(data:Object):void{
               var resultEvent:ResultEvent = data as ResultEvent;
               var user:User = new User();
               user.return_Check_Login = resultEvent.result as String;
               ModelLocator.instance().user = user;
               if(user.return_Check_Login == "success"){
                   navigateToURL(new URLRequest("../dream/main.action"),"_self");
                }else{
                   Alert.show(user.return_Check_Login);
                }
        }
       
       
       
        public function fault(info:Object):void{
              var resultEvent:ResultEvent = info as ResultEvent;
              Alert.show("fault");
        }

    }
}

六、Event与Command关联

package com.dream.business
{
    import com.adobe.cairngorm.control.FrontController;
    import com.dream.business.commands.CheckLoginUserCommand;
    import com.dream.business.events.login.CheckLoginUserEvent;
   
    public class FSController extends FrontController
    {
        public function FSController(){
               this.loadController();
        }
       
        private function loadController():void{
                this.addCommand(CheckLoginUserEvent.EVENT_ID,CheckLoginUserCommand);
        }
       
    }
}

七、配置service

<?xml version="1.0" encoding="utf-8"?>
<rds:ServiceLocator xmlns:rds="com.adobe.cairngorm.business.*"
    xmlns:mx="http://www.adobe.com/2006/mxml">
   <!--
    <mx:AMFChannel id="myamf" uri="/dream/flex/messagebroker/amf"/>
    <mx:ChannelSet id="channelSet" channels="{[myamf]}" />
    <mx:RemoteObject id="checkLogin" destination="loginService" channelSet="{channelSet}" showBusyCursor="true"/>
    -->
   
    <mx:RemoteObject id="checkLogin" destination="loginService" showBusyCursor="true"/>
</rds:ServiceLocator>

八、在application中注册

<rds:Services xmlns:rds="com.dream.business.*"/>
   
    <router:FSController xmlns:router="com.dream.business.*"/>

 

 

 

分享到:
评论

相关推荐

    Cairngorm框架在Flex开发中的应用论文

    本文介绍了Cairngorm框架的核心组件,工作流程。并分析了Cairngorm框架的优点和不足

    Spring Actionscript IOC 框架与 Flex Cairngorm MVC 应用开发

    Spring Actionscript IOC Flex Cairngorm MVC

    Cairngorm框架在Flex开发中的应用研究.nh

    2.2事件流机制应用实例........................... 3章Caimgorm框架的研究......................... 3.1对Caimgorm框架分析........................ 3.1.1MVC开发模式简介.................... 3.1.2caimgorm的...

    Cairngorm框架学习

    Cairngorm(中文名:“烟水晶”)是一个轻量级的Flex RIA程序开发框架,从而使程序可扩展性、可维护性都大大提高,其本身并不是一个完整的企业应用,它只是提供了一个开发骨架,Adobe称之为体系。

    Cairngorm-Flex.zip_Cairngorm_flex

    Cairngorm框架在Flex开发中的应用研究

    Cairngorm实例

    基于Cairngorm框架开发的应用程序。

    Flash/Flex 框架应用 Cairngorm、Mate、PureMVC以及Swiz 的典型例子

    附件是关于 Flash/Flex 几个重要框架 Cairngorm、Mate、PureMVC以及Swiz 的典型例子,由 Tony Hillerson 提供 Homepage: http://insideria.com

    flex+cairngorm+Sqlite

    教您如何在Flex Builder 3开发平台上,开发一个基于Cairngorm框架的Flex应用程程序。该应用程序中的数据来自于本地数据库SqLite。

    cairngorm简单教程.doc

    cairngorm框架是是为方便FLEX开发企业级应用而开发的一个微架构。该文档中包含了一个有关于这个框架的简单实例,并附有界面截图以及程序说明。

    Cairngorm实例 管理人员的一个demo

    Cairngorm实例,实用Cairngorm框架开发的应用程序.实例实现的功能是添加联系人信息到列表组件,点击联系人可以查看联系人信息...架构分层很清晰,希望对你有用~~~

    cairngorm2精解_手册 + blazeds

    原创:笔者参与基于cairngorm2框架的某政府大型项目实践总结手册。纯doc经验总结。图例加代码详解cairngorm应用。 cairngorm2原理,MVC图解精讲,flex组合高级应用。三层至多层,springactionscript组合应用等。

    PureMVCCairngorm对Flex开源框架的优化组合

    随着RIA的兴起,Flex技术得到了广泛的应用,将Web客户层的设计从以页面为中心提升到以组件 为中心。为了满足复杂多变的系统需求,对目前主流的Flex官方开源框架进行分析,用PureMVC的 分层解耦思想来简化Cairngorm的...

    基于Cairngorm的富客户端应用研究 (2010年)

    作者介绍了Cairngorm框架的整体架构,提出改进了的Cairngorm框架在Flex开发中的事件流机制,并应用于无线网络管理平台的设计与开发。详细演示了基于Cairngorm框架开发富客户端的流程,取得了良好的效果。

    经典实例CairngormStore的分析

    CairngormStore实例是Adobe开发团队提供的一个关于如何应用Cairngorm框架的实例。对于初学Flex开发和Cairngorm框架的人员有很大的帮助。

    Cairngorm2.2.1

    Flex应用框架Cairnaorm2.2.1 包含三个包 bin src doc

    cairngorm2_2_1-src.zip

    flex中的STRUTS 一个基于MVC的开源框架 很容易开发出MV应用

    Flex.4.0.RIA开发详解讲义

    3.0语法、Flex组件开发、CSS布局、美化界面、数据传输与交互、AIR平台应用和开发框架Cairngorm等。为了便于读者学习,本书最后两章分别对两个较综合的实例进行分析。详细讲解了Cairngorm开发框架的搭建、组件设计、...

    Flex学习电子书打包

    Flex学习电子书打包 内含三本PDF 01 Cairngorm开发框架.pdf 02 Flex 3.0新特性的应用.pdf 03 FLV播放器.pdf

    Flex代码生成器 (FCG)

    支持Cairngorm和PureMVC框架,当你选择使用其中之一来创建工程的时候,一个基本的框架文件结构会被建立起来。 支持从Server端(PHP/Java/C#)Value Object创建相应的AS代码 支持从Server端(PHP/Java/C#)Remoting ...

    CairngormFlex Assistant-开源

    CairngormFlex Assistant创建在Flex应用程序中使用Cairngorm框架的所有类基础结构需求。 它减少了开发时间和手动源操作。 更新将很快。

Global site tag (gtag.js) - Google Analytics