使用Fabrication+PureMVC开发multi modular Flex应用
PureMVC实现了简单的MVC框架,将应用分为model、view和control三部分。
好处很多了,降低了模块之间的耦合性、提高了程序的可维护性和可扩展性。
fabrication在PureMVC基础上做了扩展,简化了pureMVC的开发难度,下面简单介绍一下fabrication的开发过程。
首先,根据需要实现org.puremvc.as3.multicore.utilities.fabrication.components.FlexModule、FlexApplication、FlashApplication或者AirApplication。这就是View了。
在View中实现override public function getStartupCommand():Class 方法。返回初始化Command类,如下:
public class ConfigModuleStartupCommand extends SimpleFabricationCommand {
override public function execute(note:INotification):void {
registerProxy(new GetPropertyProxy());
registerCommand(ShellConstants.USERINFO_FIND, FindUserInfoCommand);
registerMediator(new ConfigModuleMediator(note.getBody() as ConfigModule));
}
}
在初始化类中,需要注册所需要的Proxy、Command和Mediator,Proxy主要用作和后台进行交互,查询和修改数据,这就是model了。
Command用作接收View中的事件,并做处理,一般情况下就是调用Proxy的方法。如下:
public class GetPropertyCommand extends SimpleFabricationCommand {
override public function execute(note:INotification):void {
var getPropertyProxy:GetPropertyProxy = retrieveProxy(GetPropertyProxy.NAME) as GetPropertyProxy;
getPropertyProxy.fetchProperty();
}
}
当Proxy方法得到后台反馈后,会出发成功或失败的事件。如下:
public class GetPropertyProxy extends FabricationProxy
{
static public const NAME:String = "GetPropertyProxy";
private var _remoteService:RemoteObject;
public function GetPropertyProxy(name:String = NAME, data:Object = null)
{
super(name, data);
setup();
}
private function setup():void{
_remoteService = new RemoteObject();
_remoteService.destination = "sysService";
_remoteService.showBusyCursor = true;
_remoteService.addEventListener(ResultEvent.RESULT, result);
_remoteService.addEventListener(FaultEvent.FAULT, failed);
}
p
相关文档:
RSL ( Runtime Shared Library )——运行时组件共享库,用就是使同域里的项目可共享资源,这样可以节省项目的档案大小,易切割、易搬运、易分享组件库项目与组件库可分开开发 .如下图:
下面用图文的方式展示在Flex Builder中使用RSL给Project减肥的步骤。首先来看看减肥之前的”体重”:
如上图所示: ......
在Flex应用中常常需要以一定的格式来显示时间,以下是一种做法。
首先创建一个DateFormatter 控件
<mx:DateFormatter id="df" formatString="YYYY-MM-DD JJ:NN:SS"/>
formatString="YYYY-MM-DD JJ:NN:SS"指定了时间的格式为2009-6-20 19:02:27,这里可以设置成自己需要的格式。
然后写个函数
......
metadata最先开始于dotnet吧,叫做Attribute;然后java也紧随其后,叫做Annotaion;actionscript则叫做Metadata。其中dotnet与ActionScript的语法格式上都是相似的,如AS中的[Bindable]。在Java中则是用@XXX这样的语法,如@override。不过目的都是一个,给类或方法或属性增加meta data标记,从而实现对这些被标记的代码进行 ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
//导入 ......