首先在项目中加入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框架的核心组件,工作流程。并分析了Cairngorm框架的优点和不足
Spring Actionscript IOC Flex Cairngorm MVC
2.2事件流机制应用实例........................... 3章Caimgorm框架的研究......................... 3.1对Caimgorm框架分析........................ 3.1.1MVC开发模式简介.................... 3.1.2caimgorm的...
Cairngorm(中文名:“烟水晶”)是一个轻量级的Flex RIA程序开发框架,从而使程序可扩展性、可维护性都大大提高,其本身并不是一个完整的企业应用,它只是提供了一个开发骨架,Adobe称之为体系。
Cairngorm框架在Flex开发中的应用研究
基于Cairngorm框架开发的应用程序。
附件是关于 Flash/Flex 几个重要框架 Cairngorm、Mate、PureMVC以及Swiz 的典型例子,由 Tony Hillerson 提供 Homepage: http://insideria.com
教您如何在Flex Builder 3开发平台上,开发一个基于Cairngorm框架的Flex应用程程序。该应用程序中的数据来自于本地数据库SqLite。
cairngorm框架是是为方便FLEX开发企业级应用而开发的一个微架构。该文档中包含了一个有关于这个框架的简单实例,并附有界面截图以及程序说明。
Cairngorm实例,实用Cairngorm框架开发的应用程序.实例实现的功能是添加联系人信息到列表组件,点击联系人可以查看联系人信息...架构分层很清晰,希望对你有用~~~
原创:笔者参与基于cairngorm2框架的某政府大型项目实践总结手册。纯doc经验总结。图例加代码详解cairngorm应用。 cairngorm2原理,MVC图解精讲,flex组合高级应用。三层至多层,springactionscript组合应用等。
随着RIA的兴起,Flex技术得到了广泛的应用,将Web客户层的设计从以页面为中心提升到以组件 为中心。为了满足复杂多变的系统需求,对目前主流的Flex官方开源框架进行分析,用PureMVC的 分层解耦思想来简化Cairngorm的...
作者介绍了Cairngorm框架的整体架构,提出改进了的Cairngorm框架在Flex开发中的事件流机制,并应用于无线网络管理平台的设计与开发。详细演示了基于Cairngorm框架开发富客户端的流程,取得了良好的效果。
CairngormStore实例是Adobe开发团队提供的一个关于如何应用Cairngorm框架的实例。对于初学Flex开发和Cairngorm框架的人员有很大的帮助。
Flex应用框架Cairnaorm2.2.1 包含三个包 bin src doc
flex中的STRUTS 一个基于MVC的开源框架 很容易开发出MV应用
3.0语法、Flex组件开发、CSS布局、美化界面、数据传输与交互、AIR平台应用和开发框架Cairngorm等。为了便于读者学习,本书最后两章分别对两个较综合的实例进行分析。详细讲解了Cairngorm开发框架的搭建、组件设计、...
Flex学习电子书打包 内含三本PDF 01 Cairngorm开发框架.pdf 02 Flex 3.0新特性的应用.pdf 03 FLV播放器.pdf
支持Cairngorm和PureMVC框架,当你选择使用其中之一来创建工程的时候,一个基本的框架文件结构会被建立起来。 支持从Server端(PHP/Java/C#)Value Object创建相应的AS代码 支持从Server端(PHP/Java/C#)Remoting ...
CairngormFlex Assistant创建在Flex应用程序中使用Cairngorm框架的所有类基础结构需求。 它减少了开发时间和手动源操作。 更新将很快。