- 浏览: 602455 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
wzh051527:
我是大四实习生一个,自我感觉技术能力在第三年。。唯一不明白,为 ...
十年技术,不要再迷茫 -
room_bb:
.hrl文件怎么加入到编译规则里面?比如:pp.hrl文件-d ...
Erlang中用的makefile的一点解释 -
吉米家:
感觉帆软报表的flash打印就很不错哇,特别好用
JSP 实现报表打印 -
雪碧爱芬达:
苦逼程序员的辛酸反省与总结 -
mlyjxx:
...
十年技术,不要再迷茫
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:control="CairngormDemo.business.control.*"> // 注意这个导入不能少
<mx:Script>
<![CDATA[
import CairngormDemo.business.events.LoginEvent;
import CairngormDemo.vo.UserVO;
import CairngormDemo.model.LoginModelLocator;
import mx.controls.Alert;
import com.adobe.cairngorm.control.CairngormEventDispatcher;
private function LoginHandle():void {
if (this.username.text.length == 0 || this.password.text == null){
Alert.show("用户名不能为空!","错误");
} else if (this.password.text.length == 0 || this.password.text == null){
Alert.show("密码不能为空!","错误");
} else {
var user:UserVO = new UserVO();
user.username = this.username.text;
user.password = this.password.text;
var ev:LoginEvent = new LoginEvent(user); // 触发事件(有一个参数)
CairngormEventDispatcher.getInstance().dispatchEvent(ev); // 通过Cairngorm的事件跳转
}
}
]]>
</mx:Script>
<control:LoginControl id="front"/> // 这个也不能少,跟最上面的那个导入的包一致
<mx:Panel width="350" height="250" layout="absolute" horizontalCenter="25" verticalCenter="18" fontSize="13">
<mx:Label x="39" y="25" text="用户名:"/>
<mx:Label x="39" y="73" text="密 码:"/>
<mx:TextInput x="119" y="23" id="username"/>
<mx:TextInput x="119" y="71" id="password" displayAsPassword="true"/>
<mx:Button x="39" y="121" label="登录" fontSize="12" click="LoginHandle()"/>
</mx:Panel>
</mx:Application>
package CairngormDemo.business.control{
import com.adobe.cairngorm.control.FrontController;
import CairngormDemo.business.commands.LoginCommand;
import CairngormDemo.business.events.LoginEvent;
public class LoginControl extends FrontController { // 继承于ForntController
public function LoginControl(){
super();
addCommand(LoginEvent.LOGIN_EVENT,LoginCommand); // 通过addCommand方法映射
}
}
}
package CairngormDemo.business.events {
import CairngormDemo.vo.UserVO;
import com.adobe.cairngorm.control.CairngormEvent;
public class LoginEvent extends CairngormEvent { // 注意不是继承一般的Event事件
public static const LOGIN_EVENT:String="LoginEvent";
public var user:UserVO = null;
public function LoginEvent(user:UserVO) {
super(LOGIN_EVENT);
this.user = user; // 保存参数
}
}
}
package CairngormDemo.business.commands {
import CairngormDemo.business.delegates.UserDelegate;
import CairngormDemo.business.events.LoginEvent;
import com.adobe.cairngorm.commands.Command;
import com.adobe.cairngorm.control.CairngormEvent;
import mx.rpc.IResponder;
public class LoginCommand implements Command, IResponder {
public function execute(event:CairngormEvent):void{ // 通过这个方法接受事件
var userDelegate:UserDelegate = new UserDelegate(this); // 委托给UserDelegate 处理具体
var loginEvent:LoginEvent = event as LoginEvent;
userDelegate.Login(loginEvent.user); // 调用委托中的方法,这里有一个参数
}
// 返回的结果进行处理
public function result(data:Object):void{
var result:String=data.toString();
if(result=="OK"){
Alert.show("登录成功!");
} else {
Alert.show("登录失败!");
}
}
// 处理过程出错时的处理
public function fault(info:Object):void{
Alert.show(info+"");
}
}
}
package CairngormDemo.business.delegates {
import mx.rpc.IResponder;
import CairngormDemo.model.LoginModelLocator;
import CairngormDemo.vo.UserVO;
public class UserDelegate {
private var responder:IResponder;
public function UserDelegate(responder:IResponder) {
this.responder = responder;
}
public function Login(user:UserVO):void { // 获取事件传递的参数,然后进行简单的验证
var result:Object;
if (user.username=="lzc" && user.password=="123"){
result="OK";
} else {
result="Fail"
}
responder.result(result);
}
}
}
package CairngormDemo.vo {
public class UserVO {
public var username:String;
public var password:String;
}
}
package CairngormDemo.model {
import com.adobe.cairngorm.model.ModelLocator;
import CairngormDemo.vo.UserVO;
[Bindable]
public class LoginModelLocator implements ModelLocator {
private static var loginModelLocator:LoginModelLocator; // 私有
public static function getInstance():LoginModelLocator { // 单例模式
if (loginModelLocator == null) {
loginModelLocator = new LoginModelLocator();
}
return loginModelLocator;
}
public var NowUser:UserVO = new UserVO(); // 用于保存当前登录用户信息的变量
}
}
项目的结构:
发表评论
-
as3 Loader 加载资源后内存泄露无法释放的问题。
2014-06-21 10:30 704as3 Loader 加载资源后内存泄露无法释放的问题。 ... -
as3判断flash player版本的函数
2014-06-10 20:35 859//判断当前版本是否高于9.0.115.0为例子. pr ... -
CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
2014-04-03 15:25 1065华文细黑:STHeiti Light [STXihei]华文 ... -
as3.0的垃圾回收机制
2013-09-07 14:02 1559还是同样的博客,还是同样的作者(Daniel Sidhio ... -
AIR程序多开
2013-09-07 13:55 1025AIR应用通常不能像QQ那样能进行多开操作。为了让一个用AI ... -
starling性能优化总结
2013-07-22 14:06 1495在项目开发的过程中总结了一下starling的性能优化方案: ... -
AS3 Socket从零开始
2013-07-22 12:54 1125大家如果想学AS3 Socket直接在百度里搜一下,会找到很 ... -
绕开AS3安全沙箱 跨域加载SWF
2013-07-11 12:53 933AS3的安全沙箱的确是 ... -
解决AS3在ie中初始化时stageWidth和stageHeight为0
2013-06-14 09:23 1052先看下面的一段脚本,这是比较经典的初始化脚本: pac ... -
动态获取swc中的类
2013-05-25 10:32 1000想通过代码生成,来获取swc中的类,并且可以作为普通类正常使 ... -
AS3 中字符串的format功能实现
2013-05-25 10:19 858使用C#的朋友都知道,string.Format();还是挺 ... -
总结调用Flash的几种方法
2013-05-02 16:18 1693一、Adobe 提供的方法 <object wi ... -
Flash3D错误集锦
2013-05-02 14:03 970VerifyError: Error #1014: 无法找到 ... -
使用scale拉伸之后的坐标问题
2013-04-12 09:38 1319最近发现论坛多了很多 ... -
30个实用的网页设计工具
2013-03-20 09:58 862作为一位网页设计师或开发者,你一直需要搜寻获取强大的网页设计 ... -
如何成为强大的程序员?
2013-03-11 11:27 753Aaron Stannard是新创公 ... -
漫谈重构
2013-03-11 11:09 910因为工作内容的原因, ... -
AS3使用谷歌API生成二维码
2012-12-10 16:24 1386二维码在新闻杂志,网站,网络广告,电视广告等地方随处可见 ... -
OOP的聚合原则
2012-12-10 16:21 948什么是聚合? 聚合可以很好地表达对象是什么和做 ... -
压缩速率追踪
2012-11-02 14:16 1497Flash Player 11.3添加了一个压缩和解压B ...
相关推荐
"Flex-cairngorm-demo我喜欢的"是一个基于Cairngorm框架的示例项目,开发者对其表现出了浓厚的兴趣。 Cairngorm的核心概念包括: 1. **Model**: 模型层负责处理业务逻辑和数据管理,通常与后端服务进行交互。它保持...
Flex Cairngorm和Parsley是两种在Adobe Flex框架中广泛使用的MVC(Model-View-Controller)设计模式实现库,它们主要用于构建大型、复杂的富互联网应用程序(RIA)。本源码Demo提供了这两种技术的集成应用实例,帮助...
Cairngorm框架的核心组件包括: 1. **模型(Model)**:存储应用程序的数据,与业务逻辑层交互,通常是ActionScript类。 2. **视图(View)**:显示用户界面,通常由Flex组件构成,负责呈现模型数据。 3. **控制器...
通过这个入门示例,你将学习如何设置Cairngorm框架,创建命令,订阅和发布事件,以及如何在Flex应用中有效地组织代码。实践这个项目将帮助你深入理解MVC模式以及Cairngorm如何支持它。记得在学习过程中,不断尝试...
在“Cairngorm实例 - 管理人员的一个demo”中,我们可以通过实际操作来了解Cairngorm框架的核心概念和工作流程。 首先,Cairngorth框架的核心组件包括: 1. **Controller**:控制器负责处理用户交互,它是视图和...
在深入探讨Cairngorm框架的实践应用之前,我们首先要理解Cairngorm是什么。Cairngorm是Adobe Flex社区开发的一个MVC(Model-View-Controller)设计模式的实现,主要用于构建富互联网应用程序(RIA)。这个框架以其轻...
Flex开发技巧主要涉及的是使用Adobe的Cairngorm框架进行MVC架构的开发。Cairngorm是一个轻量级的框架,旨在帮助开发者更有效地组织和管理ActionScript 3.0项目的代码,尤其是在大型Flex应用中。以下是关于Cairngorm...
【Cairngorm框架详解】 Cairngorm是一种基于MVC(Model-View-Controller)设计模式的ActionScript和Flex应用程序开发框架。它为大型、复杂的企业级Flex应用提供了结构和组织,帮助开发者更好地管理代码,提高代码...
博客链接 "<https://demojava.iteye.com/blog/1337126>" 可能包含了关于如何使用Cairngorm和FABridge的实际示例或教程,可能涵盖如何设置项目、创建命令、监听事件以及如何利用FABridge进行跨技术通信等内容。...
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
通过研究这个示例,你可以学习如何在实际项目中使用Cairngorm框架来组织代码,理解MVC模式在Flex中的应用,以及如何通过事件驱动来协调不同组件的工作。同时,你还可以学习到如何利用Cairngorm提高团队协作效率,...
总的来说,这个项目涉及了C#编程、Silverlight开发、Cairngorm框架的理解和移植,以及RIA设计原则等多个方面,对提升.NET平台上RIA应用的开发能力具有重要价值。通过深入研究和实践,开发者不仅可以掌握Cairngorm在...
Cairngorm框架虽然经典,但是有些很严重的问题: 1.不支持通知视图. Cairngorm2.1之前可以用ViewHelper 和 ViewLocator,但是自从Cairngorm2.1开始已经不推荐了.而且 ViewHelper和ViewLocator 方式本身就违反MVC. 2...
4. Cairngorm框架:Cairngorm是Flex中的一种MVC(Model-View-Controller)设计模式实现,它简化了大型Flex应用的结构和组织。在Flex与Spring整合中,Cairngorm可以帮助管理客户端的业务逻辑,与Spring的后端服务进行...
- **Cairngorm框架**:Cairngorm是一个用于构建大型Flex应用的MVC框架。 - **设计理念**:介绍Cairngorm的设计理念及其在Flex开发中的作用。 #### 33. Cairngorm之组成部分 - **ModelLocator**:ModelLocator是...
- **Cairngorm简介**:介绍Cairngorm框架,一种用于构建Flex应用程序的MVC框架。 - **组成部分**:解释Cairngorm的核心组成部分及其功能。 - **环境准备**:列出使用Cairngorm所需的环境配置。 #### 28. Demo15: ...
- **框架介绍**:Cairngorm是一个广泛使用的Flex MVC框架,可以简化大型应用程序的开发过程。 - **组成部分**:详解Cairngorm的核心组件及其作用。 - **环境配置**:提供详细的指南,帮助开发者搭建Cairngorm的开发...
- **Part3实现Spring ActionScript Cairngorm Demo Lib**: - 构建MVC目录结构。 - 实现模型层(Model)。 - 创建自定义事件。 - 构建视图(View)。 - 实现代理(Proxy)。 - 实现命令(Command)。 - 实现...
Demo15:Cairngorm - **实现**: - 分解应用为模型、视图和控制器三个部分。 - 使用命令模式来处理事件。 以上内容覆盖了从 Flex 基础知识到高级主题的广泛领域,旨在帮助读者全面掌握 Flex 开发的关键技术和...
书中通过具体的Demo,如进度条的数据绑定,详细解释了数据绑定的原理和实现方法。同时,事件处理也是Flex开发中不可或缺的一部分,书中不仅讲解了Flex中的事件机制,还通过实例展示了如何创建和处理自定义事件,以及...