flash as3中MVC使用说明详解
data层的功能:
1.封装与服务器通信的功能,提供call()接口让外部(一部是View)调用完成向服务器发送数据的功能
2.处理和解析服务器返回的数据。比如服务器返回数据后,data里的一个函数被调用,这个函数根据协议实现读取数据包的功能,读完后把数据填充到自己实例变量中
3.提供侦听接口path(协议,回调函数),让外部(一般是View),侦听所关心的协议,一旦服务器返回这个协议,回调函数就会被执行。
VIEW的功能:
1。控制UI,响应用户交互
2。调用data.path方法,侦听自己关心的数据变化事件
3。一旦用户点击(或其它事件):a.就可能给服务器发数据。一旦服务器返回数据,回调函数被执行,改变相应的UI;b.调用其它view的接口,与之通信
1:model:模型才是整个应用程序的核心。因为它保存了应用程序所有的数据,并处理业务流程。所谓业务流程,就是对应用程序数据的操作,如增删查改,必要时也会和服务器通信。对数据的操作是黑箱操作,隐藏细节,只提供接口。要保证数据的唯一性,完整性。所以,你不能在视图里写改变model数据的代码,因为视图有多个,一个视图中改变了数据,另一个视图可能不知道,造成数据的不唯一。衡量model是否设计得对,那你就假设一下,如果要把你当前到项目移植到别的平台(如页游移植到移动平台),你的model是不是不一句代码也不用改,一句代码也不用增加?
2.view:功能是管理自身的ui,并与其它view协调工作。管理自身ui包括,a.接受和影响用户的操作,收集数据,传给model,b.侦听model的变化来改变自己。ui即是一个sprite或movieclip,ui不应该知道mvc(即不会调用与mvc相关的代码,不会知道model),它只提供接口给view来调用管理。这样做的好处是ui可以重用,比如,你换了一个mvc框架,ui的代码不用修改一行,就能直接使用.
3.controller:可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求,但是它却不做任何的数据处理。个人理解,当一个数据对应有多个视图的时候,它就很有用,要不然显得有点多余。不过有的MVC框架对它的理解不一样,比如pureMVC的controller都有一个exec方法,它就不是单纯的"将模型与视图匹配在一起"了
最后再说一下 vo/info,它是一类数据的内部结构,UI可以直接引用它
补充:flash教程,As3.0