am架构学习笔记(一) 四种model的update函数的异同
来源:互联网 发布:2017年上半年上牌数据 编辑:程序博客网 时间:2024/05/16 02:50
Note 1: 所有model的常用的方法,例如update, render, graphics等都在各自的model_New函数中设置。
Note 2: EventHandlerFunc函数中负责update,一个屏幕中的所有model以树状排列,一次update最大的model就可以遍历所有的model。
Note 3: update只负责设置每个model的当前值(如显示哪个state model, List 里focus哪一项),所有的画出model的方法,均在render里完成。
一、positional_update:
1) 根据position_New设置 ** CurChild
2) 运行该positional下的handler函数
3) 设置该positional的位置。
4) 合并update区域。
5) 遍历positional的孩子,判断该孩子是否显示,设置孩子的位置,update该孩子。
6) 储存ImaxPos,ImaxIndex的值。
二、List_update:
1) 根据List_New中的model->creation设置NewChildFun(与positional不同,positional的孩子设置在model->child中,因为List的孩子只有一种类型)。
2) 运行该List下的handler。
3) 读取该List的参数(array(横列或竖列),Ilinespace,indexes(可见项,是个数组),childNB,SlotNB)。
4) 若该List需refresh,则需先释放(如List里按上、下键)。
5) 设置该List的位置。
6) 合并update区域。
7) 遍历List的各项(从indexes里读可视的项,根据slot.h和slot.y计算SlotNB)。
8) 保存ImaxPos, indexes值,ImaxIndex可在handler或XML里设置。
三、state_update
1) state 与 List一样,孩子设在model->creation中(state的孩子也只能是一种类型)。
2) 运行该state下的handler里。
3) 读state的值。
4) 根据state的值决定生成哪个孩子。
5) 若state变化(与model->old_state不同),则先释放old_state孩子。
6) 计算该state的位置,合并update区域。
7)不需要保存什么(state的值存到model->old_state里,不存到hash表里)。
四、mapper_update
1) mapper没有孩子。
2) 运行该mapper下的handler函数。
3) 设置mapper位置。
4) 合并update区域。
5) 不需要保存什么。
So 1: 四种model的update基本上都完成以下动作:运行该model的handler,设置该model的位置及update区域,遍历该model的孩子。
So 2: 叶子节点一定是mapper model。
So 3: List model要注意哪些项可见。
So 4: 父结点若需要更新,则他的子结点都需更新。
- am架构学习笔记(一) 四种model的update函数的异同
- Backbone的model学习笔记一
- 【cocos2dx学习笔记】update函数的使用
- Qt Model/View 学习笔记 (四) 创建新的Models
- toLua入门学习笔记(一):update函数在toLua内的实现
- Qt Model/View学习笔记之四创建新的Model
- am架构学习笔记(二) 屏幕切换
- ios学习笔记:三种ViewController跳转的异同
- Berkeley DB的四种算法异同
- 学习笔记-函数的四种调用模式
- 【C++】【学习笔记】/*函数声明的四种方式*/
- (转)Qt Model/View 学习笔记 (四)——创建新的Models
- 【oracle】MODEL学习笔记(一)
- Qt学习笔记-----Model/View架构
- Backbone的model学习笔记二
- Qt学习笔记-----Model/View架构之自定义Model
- Qt学习笔记-----Model/View架构之自定义Model
- .NET三层架构:四种Model设计
- Class Wizard 出错: A duplicate insert block exists
- Microsoft Silverlight 1.0 SDK 中文版地址
- 用javascript 复制文本框中的内容到剪切板
- 时髦的电热水器
- 木马程序的技术分析与研究
- am架构学习笔记(一) 四种model的update函数的异同
- 股票形态学
- js继承探讨
- 今天开博了
- Enterprise AJAX——高性能Web应用的构建策略
- 2008-1
- 什么是MSMQ
- WAP学习(2)--关于WAP 2.0
- 利用css和js实现firefox和IE都支持的页面局部打印