日志文章

2007年08月30日 17:07:37

flex...他山之玉

关于学习Flex 的一点建议(转载) - 三人行
一、起步
1.了解Flex以及相关的东西。
Flex 和 Flex Builder 有什么区别。先把FDS,Flex SDK等东西搞清楚再说。
2.初级
Flex Quick Starts 以及Adobe官网上的初级教程。
http://www.adobe.com/cn/devnet/flex/?tab:quickstart=1

应该对Flex中的组件布局,事件机制等有了大概了解。
了解一下 Flex 中的各种控件。
了解一下ActionScript 3.0了,这个东西比较强大。


3.进阶
接下来就是看一些高级教程 + 模仿示例代码了。
高级教程Adobe Flex Developer Center上。
而且Adobe 自带的 Flex Store 。
在模仿别人代码的时候要注意别人的一些编程思想,比如组件之间如何通讯之类的。


2. Flex 邮件列表。 http://www.mail-archive.com/flexcoders@yahoogroups.com/),
除了以上这些建议之外,建议大家平时多去MXNA 和Flex Blog(http://www.flex.org



forum:
http://www.anyflex.cn/bbs/discuz.php
http://www.riachina.com/
http://bbs.51js.com/forum-28-1.html
http://bbs.blueidea.com/
http://mmug.com.tw/forum/viewforum.php?f=56
http://bbs.blueidea.com/forum-4-1.html
http://www.mxml.cn/dislist.asp?boardid=6005
http://www.flexdn.com/
blog:
http://www.zhuoqun.net/
http://www.mmug.cn/blogs/index.cfm?sPart=SA&sAuthor=kenshin
http://www.kingda.org/


看看别人做的东西:
http://www.kingda.org/demo/kingda-ria-demo-testinterface.html 这个强
http://www.odao.com:8080/odaocrm/ 这是flex1.5的






使用Flex的web开发者可能最初会对用户界面模型感到困惑。虽然传统的、类似servlet的、请求-响应(request-response)模型将会在Flex中应用,但是却存在一种更好的方法。由于ActionScript语言中的“[Binding]”标签,你可以把你的视图绑定到模型数据,这样一来模型的更改就会自动影响到视图。Cairngorm 微型架构使这种方法得到形式化,而且它也是那些想要领会如何“让它们在一起工作”的开发者的一个非常好的起点。在这篇文章中我将描述变量绑定,特性驱动开发和Carigorm在NoteTag中是如何一起工作的






这里是一个典型的Flex应用程序可能的架构:
域(Domain)
·组成域模型的所有类。在NoteTag中,它包含了Notes(记录),Tasks(事务)以及Subscriptions(订阅)(Subscriptions是相关Notes或Tasks的一个群集(collection))。

模型(Model)
·一个保存域模型的可绑定实例的一个单体(singleton)。在NoteTag中,ModeLocator单体保存了用户的订阅清单,用户的连接,当前的订阅,当前的记录以及其他。

视图(View)
·UI 组件(通常来说就是MXML文件,虽然并不总是)。依赖状态(state-dependent)的UI组件被绑定到ModeLocator的实例变量。如果ModeLocator中数据被标记为“[Bindable]”,那么它的任何改变都会导致UI自动更新。NoteTag中的一个例子就是 NoteListView,它显示了当前订阅中的记录列表。如果当前的订阅或者它的任何一个记录改变了,那么NoteListView将会自动更新来反应这些改变。

控制器(Controller)
·同事件驱动的Commands一样执行特性所需的下部构造。NoteTag中的例子包括GetSubscriptionCommand, GetNoteCommand 以及其他。

业务(Business)
·完成域中对象操作的业务逻辑类,经常呼叫远程服务并且异步返回结果。对大部分NoteTag的业务逻辑来说SubscriptionManager类是entry point。

服务(Service)
· 服务层,保存了用来呼叫远程服务(HTTPService,RemoteService和WebService)的所有类。NoteTag 使用了一个服务工厂(factory)类集合,减轻了对特殊的HTTP服务的部署,这些HTTP服务来自进行HTTP 服务呼叫的组件。

多数应用程序特性都有上面的一些或者全部结构。下面是一个典型特性的工作流程:
1.视图(view)广播一个事件。
2.单体控制器(controller)收到这个事件,把它映射到相应的Command,并且执行这个Command。
3.Command委托适当的业务(Business)对象执行业务逻辑。
4.业务(Business)对象执行业务逻辑,可能对不同的Service进行一个或者多个异步呼叫,并且通过分派(dispatch)一个新的事件给Command来返回结果。
5.Command将结果赋给单体模型。
6.绑定到单体模型中的数据的所有视图都自动更新。


Tags: JAVA  

类别: flex/AJAX |  评论(0) |  浏览(571) |  收藏
发表评论
看不清楚,换一张