Update:需要有一定的Flex基础
使用FlexBuilder新建一个Flex Project,解压Cairngorm2_2_1-bin.zip某个文件夹,添加Cairngorm.swc到项目Build Path。
具体过程:(附件Add Flex Library)
- 依次点击File>New>Flex Project
- 在弹出的New Flex Project对话框中输入项目名UserManager,点击Next
- 选择输出文件夹(默认就可以),Next
- 到源码路径和类库配置界面,选择Library Path tab,你可以看到默认导入的Flex类库,点击右侧的Add SWC按钮
- 在选择文件对话框中,找到Cairngorm.swc,点击OK
- 点击Finish
PS:你可以简单的把Cairngorm.swc放到项目的Libs目录下
建立文件夹结构(附件Package Structure)
新建 class UserManagerModelLocator 实现 IModelLocator 接口
net/imzw/UserManagerDemo/model/UserManagerModelLocator.as
package net.imzw.UserManagerDemo.model{
import com.adobe.cairngorm.model.IModelLocator;
import mx.collections.ArrayCollection;
public class UserManagerModelLocator implements IModelLocator{
// Single Instance of Our ModelLocator
private static var instance:UserManagerModelLocator;
public function UserManagerModelLocator(enforcer:SingletonEnforcer) {
if (enforcer == null) {
throw new Error( "You Can Only Have One UserManagerModelLocator" );
}
}
// Returns the Single Instance
public static function getInstance() : UserManagerModelLocator {
if (instance == null) {
instance = new UserManagerModelLocator( new SingletonEnforcer() );
}
return instance;
}
//DEFINE YOUR VARIABLES HERE
public var workflowState:uint = 0;
// DEFINE VIEW CONSTATS
public static const LOGIN_SCREEN:uint = 0;
public static const MAIN_SCREEN:uint = 1;
}
}
class SingletonEnforcer {}
这里用了一个设计模式:单例模式,即整个应用程序只有一个该类的实例,目的很明显--共享数据。也就是这里
//DEFINE YOUR VARIABLES HERE
public var workflowState:uint = 0;
这些是共享的,稍后我再介绍他们。
新建两个视图组件
net/imzw/UserManagerDemo/views/LoginForm.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import net.imzw.UserManagerDemo.model.UserManagerModelLocator;
import mx.controls.Alert;
private var modelLocator:UserManagerModelLocator
= UserManagerModelLocator.getInstance();
private function login(e:MouseEvent):void{
if( loginNameTextInput.text == "imzw"
&& passwordTextInput.text == "imzw" ){
modelLocator.workflowState = UserManagerModelLocator.MAIN_SCREEN;
}
}
]]>
</mx:Script>
<mx:Form defaultButton="{loginButton}">
<mx:FormHeading label="Please Login" />
<mx:FormItem label="LoginName">
<mx:TextInput id="loginNameTextInput" />
</mx:FormItem>
<mx:FormItem label="Password">
<mx:TextInput id="passwordTextInput" displayAsPassword="true"/>
</mx:FormItem>
<mx:HBox horizontalAlign="right" width="100%">
<mx:Button id="loginButton" click="{login(event)}" label="Login"/>
</mx:HBox>
</mx:Form>
</mx:VBox>
net/imzw/UserManagerDemo/views/MainScreen.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import net.imzw.UserManagerDemo.model.UserManagerModelLocator;
[Bindable]
private var modelLocator:UserManagerModelLocator
= UserManagerModelLocator.getInstance();
]]>
</mx:Script>
<mx:Button label="Logout" id="logoutButton"
click="{modelLocator.workflowState = UserManagerModelLocator.LOGIN_SCREEN }"/>
</mx:VBox>
同时在应用程序主文件中写入如下代码:
UserManagerDemo.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" xmlns:view="net.imzw.UserManagerDemo.views.*">
<mx:Script>
<![CDATA[
import net.imzw.UserManagerDemo.model.UserManagerModelLocator;
import mx.controls.Alert;
[Bindable]
private var modelLocator:UserManagerModelLocator = UserManagerModelLocator.getInstance();
]]>
</mx:Script>
<mx:ViewStack width="100%" height="100%"
selectedIndex="{modelLocator.workflowState}">
<view:LoginForm />
<view:MainScreen />
</mx:ViewStack>
</mx:Application>
OK,Run Application。
你将看见 (输入用户名imzw密码imzw试试看)
- 描述: Add Flex Library
- 大小: 69.2 KB
- 描述: Package Structure
- 大小: 15.5 KB
分享到:
相关推荐
标题提到的“Flex之使用Cairngorm(3) - Command & Event”,意味着这个系列文章已经讲解了Cairngorm的基础知识,现在将更深入地探讨Command模式和Event机制,这两个是Cairngorm中关键的交互元素。 Command模式是...
- **ModelLocator**:ModelLocator是Cairngorm的核心组件之一,用于存储业务逻辑相关的数据。 - **Command**:Command模式用于处理应用程序中的各种命令。 - **View**:View组件负责展示UI。 #### 34. MVC - **MVC...
Cairngorm是一个轻量级的MVC框架,专门用于Adobe Flex应用程序的开发。这个框架的设计目的是为了提高Flex项目的可维护性和可扩展性,通过分离业务逻辑、视图和控制层,使得代码更加模块化。在Cairngorm中,模型...
在“flex框架之Cairngorm框架(二)”这个主题中,我们可能深入探讨如何使用Cairngorm与后台进行通信。这通常涉及以下步骤: 1. **创建Command**:首先,为与后台的通信创建一个命令类,例如`...
3. **模型的创建和管理**:案例可能会展示如何创建和使用ModelLocator来管理全局模型,使得多个组件可以共享同一份数据。 4. **视图组件的交互**:通过设置视图组件的事件监听器,当用户操作视图时,控制器接收并...
Flex Cairngorm框架详解 Flex Cairngorm框架是Adobe Flex应用程序开发中的一个流行的设计模式,它基于Model-View-Controller(MVC)架构,旨在提高代码的可维护性和可扩展性。Cairngorm框架由SitePen公司开发,最初...
Flex3+Cairngorm+Spring的增删改查模块是一个典型的富互联网应用程序(RIA)开发实例,它结合了Adobe Flex3、Cairngorm框架和Spring框架,为小型用户提供了一个全面的CRUD(Create, Read, Update, Delete)功能。...
### Flex轻量级开发框架——Cairngorm详细介绍 #### 一、引言 随着RIA(Rich Internet Applications)技术的发展,Flex作为一种强大的客户端技术,在构建交互丰富的应用方面展现了其独特的优势。为了更好地组织代码...
综上所述,这个Flex Cairngorm Java实例展示了如何使用这些技术来构建一个完整的RIAs解决方案,其中Flex负责前端展示,Cairngorm作为架构基础,Java处理后端服务,而BlazeDS则作为通信桥梁。通过这样的组合,开发者...
2. **视图(View)**:视图通常是Flex中的UI组件,如Flex布局、按钮、文本框等,它们通过数据绑定直接与`ModelLocator`交互,显示和处理用户输入。视图的变化不会直接操作模型,而是通过事件触发控制器。 3. **控制...
Flex Cairngorm和Parsley是两种在Adobe Flex框架中广泛使用的MVC(Model-View-Controller)设计模式实现库,它们主要用于构建大型、复杂的富互联网应用程序(RIA)。本源码Demo提供了这两种技术的集成应用实例,帮助...
Flex是一种用于构建富互联网应用程序(RIA)的开源框架,而Cairngorm是Flex社区中最受欢迎的轻量级MVC设计模式实现之一。这个项目可能是为了帮助初学者理解如何在Flex中使用Cairngorm来组织代码和管理应用程序的复杂...
【标题】"cairngorm构架做的flex-weather倒影(推荐)"涉及的核心知识点主要围绕Flex开发框架Cairngorm以及它在构建Flex Weather应用程序中的应用,同时提到了视觉效果——倒影。让我们详细了解一下这些关键概念。 ...
- **ModelLocator**:作为Cairngorm的核心组件之一,ModelLocator的作用是集中管理应用程序中的数据模型。它通过单例模式实现,确保在整个应用程序中对数据模型的统一访问和更新,避免了数据冲突和冗余。 - **...