这两天同事们都回家过年去了,剩我独自一人在办公室值班,虽然冷清,但却是难得的静谧,特别适合做东西,这不,昨天花了点时间把Flex1.5框架cairngorm给移植到了Flex2.0。在官方未发布基于Flex2.0的cairngorm,希望这个2.0的版本能给想在Flex2.0中使用cairngorm框架的朋友一些帮助…

这两天同事们都回家过年去了,剩我独自一人在办公室值班,虽然冷清,但却是难得的静谧,特别适合做东西,这不,昨天花了点时间把Flex1.5框架cairngorm给移植到了Flex2.0。在官方未发布基于Flex2.0的cairngorm,希望这个2.0的版本能给想在Flex2.0中使用cairngorm框架的朋友一些帮助。

Cairngorm框架是iterationtwo推出的号称基于JEE Best Practice的Flex1.5程序开发的light-weight framework,其M/V/C/Remote之间可以做到完全解构,目前最新版本为0.99。

其主要的几个特性如下:

  • 通过ViewLocator/ViewHelper将View(MXML)中夹杂的function与View分离。(这里的MXMLObject接口的实现非常有想像力)
  • 通过Command/FrontController将Event与Viwe分离。
  • 通过ServiceLocator将Remote Service声明与View分离。

主要的修改清单如下:

  1. 为避免混淆及使代码更清晰,将org.nevis.cairngorm.control.Event改为了org.nevis.cairngorm.control.CairngormEvent,并继承了flash.events.Event类;
  2. 为与Flex2.0兼容,修改org.nevis.cairngorm.control.EventBroadcaster继承flash.events.EventDispatcher类;
  3. 因为Flex2.0不再支持handEvent的事件处理方法,修改org.nevis.cairngorm.control.FrontController中的executeCommand方法将事件监听改为EventBroadcaster.getInstance().addEventListener( commandName, this.handleEvent );
  4. 由于Flex2.0中MXMLObject接口已更改为IMXMLObject,所以将org.nevis.cairngorm.view.ViewHelper 改为实现IMXMLObject接口;
  5. 由于Flex2.0中已经移除mx.core.UIObject类,所以修改org.nevis.cairngorm.business.ServiceLocator为扩展UIComponent类;
  6. 其他的Flex2.0兼容变更。

详细的修改情况,请查看源代码:

更多信息访问Cairngorm for Flex2.0项目主页:Labs.eshangrao.com

另外,顺祝大家新春快乐,旺旺旺…