flex流行mvc框架之cairngorm小试牛刀.doc
《flex流行mvc框架之cairngorm小试牛刀.doc》由会员分享,可在线阅读,更多相关《flex流行mvc框架之cairngorm小试牛刀.doc(11页珍藏版)》请在三一办公上搜索。
1、前几天学了下Flex的一MVC流行框架Cairngorm,并自己小试牛刀一把,暂作了一网站后台,通过项目让我现在觉得Cairngorm并不是一个如此神奇的东西,只要我们大家都能按照它走一遍就会有所收获,我们就会对MVC有个基本的了解,也会对Cairngorm有一个初步了解,希望大家通过我的这篇文章也能写出一个demo出来,当然是能在不看我这篇demo或者别人的demo的前提下写出来啦,呵呵,首先要说的是,这个框架并不是一定要在lcds下才能运行的,所以大家可以简单的建个Flex项目就OK了,下面就开始我们的Demo。在最后会把整个工程源码提供出来,欢迎下载。 我们新建工程,有一个Cairngr
2、om的swc包一定要引进去才行的哈,不然是不能成功的,所以大家可以Cairngrom的官方网站上去下载哈,我在这里提供地址,方便大家去下载 先把我刚写的一个小demo的部署结构给大家看看, 下面我会一一讲解每个包中应方的类,每个包的命名都是很规范的,这样大家就很清晰的理解你写的代码的意思,所以建议大家不要轻易改变这么命名。我先说说这里的包,既然是MVC框架的话,当然我们要把哪些是M,哪些是V以及哪些是C给分出来。M主要是模型,我们从命名也许也能猜到了,model和vo应该都归属于该层了,它主要是存放的是数据模型,vo中存的就是普通的数据,一般的话都是最小单位的数据,是不能进行再次分解的数据,代
3、码如下: Java代码 1. packageorg.rjb.vo 2. 3. importcom.adobe.cairngorm.vo.IValueObject; 4. /一般情况下,我们需要实现框架中的IValueObject接口 5. publicclassUserVOimplementsIValueObject 6. /存放用户名 7. publicvaruserName:String; 8. /存放密码 9. publicvarpassword:String; 10. 11. import com.adobe.cairngorm.vo.IValueObject; /一般情况下,我们需要
4、实现框架中的IValueObject接口public class UserVO implements IValueObject/存放用户名public var userName:String;/存放密码public var password:String;而model中的数据一般是包括相应的VO对象以及一些相关的应用变量,比如说系统状态什么的,当然要按自己的意思来了,并且我们一般把它做成单例类,前面我有篇文章就是讲单例模式的,并对比了java和actionscript3.0中不同的实现方式,如果还不是很了解的话大家可以去参考下。下面是改model类: Java代码 1. packageorg.
5、rjb.model 2. 3. importcom.adobe.cairngorm.model.ModelLocator; 4. 5. importorg.rjb.vo.UserVO; 6. Bindable 7. publicclassUserModelLocatorimplementsModelLocator 8. 9. /存放vo对象 10. publicvaruserVO:UserVO; 11. /存放一些状态变量 12. publicvarstate:String=User-Login; 13. /单例对象 14. privatestaticvarmodelLocator:UserM
6、odelLocator; 15. 16. publicstaticfunctiongetInstance():UserModelLocator 17. if(modelLocator=null) 18. modelLocator=newUserModelLocator(newSingleClass(); 19. 20. returnmodelLocator; 21. 22. 23. publicfunctionUserModelLocator(single:SingleClass) 24. if(single=null) 25. thrownewError(YouCanOnlyHaveOneU
7、serModelLocator); 26. 27. 28. 29. 30. 31. classSingleClasspackage org.rjb.modelimport com.adobe.cairngorm.model.ModelLocator;import org.rjb.vo.UserVO; Bindablepublic class UserModelLocator implements ModelLocator/存放vo对象public var userVO:UserVO;/存放一些状态变量public var state:String=User-Login;/单例对象private
8、 static var modelLocator:UserModelLocator;public static function getInstance():UserModelLocatorif(modelLocator=null)modelLocator=new UserModelLocator(new SingleClass();return modelLocator;public function UserModelLocator(single:SingleClass)if(single=null)throw new Error( You Can Only Have One UserMo
9、delLocator );class SingleClass设成单例类的话我们可以保证系统的数据得到同意,并且我们会把它设置为绑定模式,可以和接下来说的view包下的视图类进行数据绑定。view包下前面说了,是存放相关的视图的,可以是as的也可以是mxml的,看大家的意思了,比如说我们可以存放些自定义的组建或扩展的组件等,下面是LoginPanel.mxml的代码: Java代码 1. 2. 3. 4. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
10、55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 接下来我们说说event包,其实这个包我们和接下来说的commands包合并,我在这就分开了,为的是使结构更加清晰哈,在event包下我们存放的是我们自定义的事件,比如下面的LoginEvent.as: Java代码 1. packageorg.rjb.event 2. 3. importcom.adobe.cairngorm.control.CairngormEvent; 4. 5. importflash.events.Event; 6. 7. importorg
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- flex 流行 mvc 框架 cairngorm 小试牛刀

链接地址:https://www.31ppt.com/p-2386519.html