`
iMzw
  • 浏览: 193529 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex之使用Cairngorm(3) - Command & Event

阅读更多
其实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>


代码见附件。
1
0
分享到:
评论
2 楼 iMzw 2008-08-14  
参见下面这篇文章的源码
http://nealmi.iteye.com/blog/212285
1 楼 wangwanttt 2008-08-14  
咋没delegate和server.mxml

相关推荐

    Flex-cairngorm-demo我喜欢的

    Flex Cairngorm 框架是一个面向Flex开发者的重要工具,尤其对于那些致力于构建大型、可扩展的MVC(Model-View-Controller)架构的应用程序。这个框架为ActionScript 3.0开发提供了强大的设计模式支持,使代码组织...

    Flex login flex cairngorm

    Cairngorm是Flex社区中广泛使用的轻量级MVC(模型-视图-控制器)框架,它帮助开发者组织和管理复杂的Flex项目。在“Flex login flex cairngorm”这个主题中,我们将探讨如何使用Cairngorm框架实现登录功能。 1. **...

    Flex开发框架cairngorm入门实例教程

    3. **控制器(Controller)**:Cairngorm使用`CairngormEventDispatcher`作为全局事件调度器,处理视图发出的事件。在`addBook()`方法中,创建了一个`AddBookEvent`对象,并通过`CairngormEventDispatcher`分发该...

    跟我StepByStep学FLEX教程------王一松

    - **Cairngorm框架**:Cairngorm是一个用于构建大型Flex应用的MVC框架。 - **设计理念**:介绍Cairngorm的设计理念及其在Flex开发中的作用。 #### 33. Cairngorm之组成部分 - **ModelLocator**:ModelLocator是...

    Cairngorm-Flex.zip_Cairngorm_flex

    5. **事件(Event)**:Cairngorm依赖于Flex的事件系统来传递消息。事件被用来在框架组件之间通信,如视图发布事件,控制器接收并处理这些事件。 6. **服务定位器(Service Locator)**:提供依赖注入功能,帮助...

    flex框架之Cairngorm框架(二)

    在“flex框架之Cairngorm框架(二)”这个主题中,我们可能深入探讨如何使用Cairngorm与后台进行通信。这通常涉及以下步骤: 1. **创建Command**:首先,为与后台的通信创建一个命令类,例如`...

    flex-Cairngorm框架

    Flex Cairngorm框架详解 Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行的设计模式,它基于Model-View-Controller(MVC)架构,旨在提高代码的可维护性和可扩展性。Cairngorm框架由SitePen公司开发,最初...

    Flex框架Cairngorm经典案例源码

    Cairngorm是Flex社区中流行的一种轻量级MVC(Model-View-Controller)框架,它提供了一种结构化的方法来组织和管理Flex项目的代码,从而提高开发效率和代码可维护性。 Cairngorm框架的核心组件包括: 1. **模型...

    Flex3+Cairngorm+Spring的增删改查模块

    Flex3+Cairngorm+Spring的增删改查模块是一个典型的富互联网应用程序(RIA)开发实例,它结合了Adobe Flex3、Cairngorm框架和Spring框架,为小型用户提供了一个全面的CRUD(Create, Read, Update, Delete)功能。...

    flex+cairngorm+Sqlite

    在“flex+cairngorm+Sqlite”的项目中,我们将学习如何将这三个技术结合,创建一个在Flex Builder 3中运行的应用程序。以下是一些关键知识点: 1. **Cairngorm框架**: - **核心概念**:Cairngorm包括Controller、...

    一年前整合flex3+cairngorm+spring+hibernate

    Cairngorm的核心组件包括Command、ServiceLocator、Event、Proxy等,这些组件协同工作,实现灵活的架构设计。 3. Spring:Spring是Java领域的一个开源应用框架,主要用于简化企业级应用开发。在本项目中,Spring...

    Flex MVC框架 Cairngorm 学习笔记

    Cairngorm是一个轻量级的MVC(Model-View-Controller)框架,专为Adobe Flex应用程序设计。这个框架提供了一种结构化的方法来组织和管理Flex应用的复杂性,帮助开发者实现更好的代码复用、模块化和可维护性。在深入...

    flex+cairngorm+java 实例

    综上所述,这个Flex Cairngorm Java实例展示了如何使用这些技术来构建一个完整的RIAs解决方案,其中Flex负责前端展示,Cairngorm作为架构基础,Java处理后端服务,而BlazeDS则作为通信桥梁。通过这样的组合,开发者...

    Flex Cairngorm Parsley Demo 源码

    Flex Cairngorm和Parsley是两种在Adobe Flex框架中广泛使用的MVC(Model-View-Controller)设计模式实现库,它们主要用于构建大型、复杂的富互联网应用程序(RIA)。本源码Demo提供了这两种技术的集成应用实例,帮助...

    Flex的Cairngorm框架工程 Java后台

    5. **Event**:事件是Flex中的消息传递机制,Cairngorm使用自定义事件进行通信,例如CommandMessage,它允许命令之间或者命令与控制器之间传递信息。 6. **Proxy**:代理是数据访问层的一部分,用于封装对远程服务...

    flex Cairngorm 实例

    Flex Cairngorm实例详解 Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行MVC(Model-View-Controller)框架,它提供了一种结构化的方式...希望这个Cairngorm实例能为你的Flex开发之路提供宝贵的参考和帮助。

Global site tag (gtag.js) - Google Analytics