其实ActionScript3很象Java代码。Cairngorm也是大量借鉴了Java EE里的模式。
建立Command,实现com.adobe.cairngorm.commands.Command接口. 在execute(event:CairngormEvent) 里实现你的业务逻辑。
UserLoginCommand.as
package net.imzw.UserManagerDemo.command{
import com.adobe.cairngorm.commands.Command;
import com.adobe.cairngorm.control.CairngormEvent;
import mx.controls.Alert;
import net.imzw.UserManagerDemo.event.UserOperationEvent;
import net.imzw.UserManagerDemo.model.UserManagerModelLocator;
import net.imzw.UserManagerDemo.vo.UserVO;
public class UserLoginCommand implements Command{
private var modelLocator:UserManagerModelLocator = UserManagerModelLocator.getInstance();
public function UserLoginCommand(){
super();
}
public function execute(event:CairngormEvent):void{
var userOPEvent:UserOperationEvent = event as UserOperationEvent;
var user:UserVO = userOPEvent.user;
if( user.loginName == "imzw" && user.password == "imzw" ){
modelLocator.workflowState = UserManagerModelLocator.MAIN_SCREEN;
modelLocator.currentUser = user;
}else{
Alert.show("LoginName or Password invalid!");
}
}
}
}
建立Event, 继承com.adobe.cairngorm.control.CairngormEvent。
UserOperationEvent.as
package net.imzw.UserManagerDemo.event
{
import com.adobe.cairngorm.control.CairngormEvent;
import flash.events.Event;
import net.imzw.UserManagerDemo.vo.UserVO;
public class UserOperationEvent extends CairngormEvent{
public static const USER_OPERATION_EVENT:String = "userOperation";
public var user:UserVO;
public function UserOperationEvent(user:UserVO=null, bubbles:Boolean=false, cancelable:Boolean=false){
this.user = user;
super(USER_OPERATION_EVENT, bubbles, cancelable);
}
override public function clone():Event{
return new UserOperationEvent(this.user);
}
}
}
建立Controller,通过addCommand 方法添加UserLoginCommand到Controller。
UserController.as
package net.imzw.UserManagerDemo.control{
import com.adobe.cairngorm.control.FrontController;
import net.imzw.UserManagerDemo.command.UserLoginCommand;
import net.imzw.UserManagerDemo.event.UserOperationEvent;
public class UserController extends FrontController {
public function UserController(){
super();
this.init();
}
private function init():void{
this.addCommand(UserOperationEvent.USER_OPERATION_EVENT, UserLoginCommand);
}
}
}
实例化Controller到Application级。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:view="net.imzw.UserManagerDemo.views.*"
xmlns:control="net.imzw.UserManagerDemo.control.*"
horizontalAlign="center" verticalAlign="middle">
<mx:Script>
<![CDATA[
import net.imzw.UserManagerDemo.model.UserManagerModelLocator;
import mx.controls.Alert;
[Bindable]
private var modelLocator:UserManagerModelLocator = UserManagerModelLocator.getInstance();
]]>
</mx:Script>
<control:UserController />
<mx:ViewStack width="400" height="300"
selectedIndex="{modelLocator.workflowState}">
<view:LoginForm />
<view:MainScreen />
</mx:ViewStack>
</mx:Application>
代码见附件。
分享到:
相关推荐
Flex Cairngorm 框架是一个面向Flex开发者的重要工具,尤其对于那些致力于构建大型、可扩展的MVC(Model-View-Controller)架构的应用程序。这个框架为ActionScript 3.0开发提供了强大的设计模式支持,使代码组织...
Cairngorm是Flex社区中广泛使用的轻量级MVC(模型-视图-控制器)框架,它帮助开发者组织和管理复杂的Flex项目。在“Flex login flex cairngorm”这个主题中,我们将探讨如何使用Cairngorm框架实现登录功能。 1. **...
3. **控制器(Controller)**:Cairngorm使用`CairngormEventDispatcher`作为全局事件调度器,处理视图发出的事件。在`addBook()`方法中,创建了一个`AddBookEvent`对象,并通过`CairngormEventDispatcher`分发该...
- **Cairngorm框架**:Cairngorm是一个用于构建大型Flex应用的MVC框架。 - **设计理念**:介绍Cairngorm的设计理念及其在Flex开发中的作用。 #### 33. Cairngorm之组成部分 - **ModelLocator**:ModelLocator是...
5. **事件(Event)**:Cairngorm依赖于Flex的事件系统来传递消息。事件被用来在框架组件之间通信,如视图发布事件,控制器接收并处理这些事件。 6. **服务定位器(Service Locator)**:提供依赖注入功能,帮助...
在“flex框架之Cairngorm框架(二)”这个主题中,我们可能深入探讨如何使用Cairngorm与后台进行通信。这通常涉及以下步骤: 1. **创建Command**:首先,为与后台的通信创建一个命令类,例如`...
Flex Cairngorm框架详解 Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行的设计模式,它基于Model-View-Controller(MVC)架构,旨在提高代码的可维护性和可扩展性。Cairngorm框架由SitePen公司开发,最初...
Cairngorm是Flex社区中流行的一种轻量级MVC(Model-View-Controller)框架,它提供了一种结构化的方法来组织和管理Flex项目的代码,从而提高开发效率和代码可维护性。 Cairngorm框架的核心组件包括: 1. **模型...
Flex3+Cairngorm+Spring的增删改查模块是一个典型的富互联网应用程序(RIA)开发实例,它结合了Adobe Flex3、Cairngorm框架和Spring框架,为小型用户提供了一个全面的CRUD(Create, Read, Update, Delete)功能。...
在“flex+cairngorm+Sqlite”的项目中,我们将学习如何将这三个技术结合,创建一个在Flex Builder 3中运行的应用程序。以下是一些关键知识点: 1. **Cairngorm框架**: - **核心概念**:Cairngorm包括Controller、...
Cairngorm的核心组件包括Command、ServiceLocator、Event、Proxy等,这些组件协同工作,实现灵活的架构设计。 3. Spring:Spring是Java领域的一个开源应用框架,主要用于简化企业级应用开发。在本项目中,Spring...
Cairngorm是一个轻量级的MVC(Model-View-Controller)框架,专为Adobe Flex应用程序设计。这个框架提供了一种结构化的方法来组织和管理Flex应用的复杂性,帮助开发者实现更好的代码复用、模块化和可维护性。在深入...
综上所述,这个Flex Cairngorm Java实例展示了如何使用这些技术来构建一个完整的RIAs解决方案,其中Flex负责前端展示,Cairngorm作为架构基础,Java处理后端服务,而BlazeDS则作为通信桥梁。通过这样的组合,开发者...
Flex Cairngorm和Parsley是两种在Adobe Flex框架中广泛使用的MVC(Model-View-Controller)设计模式实现库,它们主要用于构建大型、复杂的富互联网应用程序(RIA)。本源码Demo提供了这两种技术的集成应用实例,帮助...
5. **Event**:事件是Flex中的消息传递机制,Cairngorm使用自定义事件进行通信,例如CommandMessage,它允许命令之间或者命令与控制器之间传递信息。 6. **Proxy**:代理是数据访问层的一部分,用于封装对远程服务...
Flex Cairngorm实例详解 Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行MVC(Model-View-Controller)框架,它提供了一种结构化的方式...希望这个Cairngorm实例能为你的Flex开发之路提供宝贵的参考和帮助。