其实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 25 跟我StepByStep学FLEX教程------Java&Flex之RemoteObject 1 26 跟我StepByStep学FLEX教程------AMF 1 27 跟我StepByStep学FLEX教程------Demo12之FLEX和Spring整合 1 28 跟我StepByStep学FLEX教程------访问...
源码(包含Cairngorm.swc) 博文链接:https://nealmi.iteye.com/blog/164879
Flex开发框架cairngorm入门实例教程,有需要的人可以看一下
Flex login flex cairngorm
flex框架之Cairngorm框架,包括Cairngorm框架
flex框架之Cairngorm框架,一个用Cairngorm与后台通信实例
flex例子使用Cairngorm框架。
一个cairngorm做的flex框架例子,比较喜欢
Cairngorm框架在Flex开发中的应用研究
Flex框架Cairngorm经典案例源码 完全掌握Cairngorm
前台FLex工程(单独工程Cairngorm)使用Cairngorm框架与后台java工程(FLexToJava)进行数据交互。功能点: ①flex提交表单保存到数据库; ②flex向后台请求,后台返回List集合,flex将集合填充到combox 附带:...
Cairngorm-被adobe收购flex框架
當adobe公司推出Flex2和Action Script3的時候,把Itereation:Tow並入成為合作伙伴,Cairngorm也成為adobe官方欽定的開發框架,並同時發佈Cairngorm for Flex 2版本。 Cairngorm本身並不是一個完整的企業應用,它只...
cairngorm-2.2.2.swc Flex中的一款框架