SlideShare a Scribd company logo
Flex 中的数据绑定和列表模式 徐哲  Doit.im
问题 谁在用 Flex 做企业应用? 用框架了吗?
丑陋的框架 Cairngorm Mate PureMVC ......
Flex 开发什么应用? RichClient 像 HTML Web 还是传统 Client ?
传统 HTML 应用的模式 根据页面事件向服务器请求数据 手工数据更新页面
Flex 的优点 数据绑定 One Page 或者 Less Page 应用、 AIR
Flex 的开发模式 数据更新应该由数据绑定自动完成 我们只操作客户端内存中的数据 与服务器或者本地数据的交互应该由框架来完成 服务器交互 REST 或者类 REST 风格
所以需要 ...... 数据绑定的列表操作模式 Datasource
数据绑定的列表操作模式 定义 针对列表的操作,使集合 A 变换成集合 B 操作的结果符合数据绑定的特性,即数据源更新会触发绑定对象的更新 根据源数据列表 A 的增删操作更新列表,并 Dispatch 对应的 CollectionEvent 事件 如果源数据列表 A 发生 CollectionEventKind.RESET 事件,比如 removeAll ,则更新整个列表 B 并 Dispatch 对应的 CollectionEventKind.RESET 事件 一般来说,对列表 B 只用来做展示使用,而不适合做增删修改操作,所有增删改操作都应该作用在源数据列表 A 上
模式列表 绑定子集:从列表 A ,过滤出一个列表 B 绑定并集:从列表 A1 , A2, 合并成一个并集 B 绑定映射:从列表 A ,映射其元素得到一个新的列表 B
子集模式实现 使用 ListCollectionView 的 filter function 即可
监听列表 A1 、 A2 的 CollectionEvent ,忽略 CollectionEventKind.MOVE 和 UPDATE 事件 维护一个从 A1 、 A2 合并的列表,根据 A1 、 A2 列表的 CollectionEvent ,操作合并后的列表与其同步 该实现不支持对并集 B 的操作,应该通过修改原始列表 (A1 、 A2) 更新并集 B 并集模式实现
映射模式实现 监听列表 A 所有的 CollectionEvent 列表 B 必须和列表 A 同步,包含每个对象的对于位置
 
Datasource 监听服务器端的变化更新 Datasource ,并通过数据绑定反映到 UI ,反之亦然 按照类型组织 使用 Dictionary 做一个 id 对应的字典 类 REST 方式保存数据
Datasource private var data:Dictionary = new Dictionary(); private var lists:Dictionary = new Dictionary(); private var filters:Dictionary = new Dictionary(); public function listFromServerByExp(type:Class, exp:ExpressionExt, callback:Function = null):void public function list(type:Class):ListCollectionView public function listByExp(type:Class, exp:ExpressionExt):ListCollectionView public function update(entity:RawEntity):void  public function remove(entity:RawEntity):void  public function detectEntityById(type:Class, id:String):RawEntity  public function detectEntityByExp(exp:ExpressionExt):RawEntity
 
Thank you !

More Related Content

PPT
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
PPT
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
PPTX
PPT
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
PPT
Indicators for measuring library resources and services
PPT
腾讯大讲堂24 qq show2.0重构历程
PPT
腾讯大讲堂24 qq show2.0重构历程
PDF
Windows 8 apps dev.整理及分享
[人本设计沙龙][2010.04.18]运营专业型社区的经验和反思(范凯)
[Flash开发者交流][2010.05.30]flex开发实践经验谈(谢敏)
[人本设计沙龙][2010.04.18]产品体验的细节与整体把握
Indicators for measuring library resources and services
腾讯大讲堂24 qq show2.0重构历程
腾讯大讲堂24 qq show2.0重构历程
Windows 8 apps dev.整理及分享

Similar to [Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲) (20)

PPT
Flex开发实践经验谈(谢敏)
PPT
Re Introduce Web Development
PPT
敦群學院-SharePoint精英計畫-系統開發-Day 3
PPT
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
PDF
以 .NET RIA Services 打通 Silverlight 分散式開發之任督二脈
PPT
Ajax应用开发最佳实践
PPT
Hibernate
PDF
企业系统商务智能设计
PPTX
Cassandra架构与应用
PDF
Cloud client : 达尔文信息云浏览器
PDF
Ajax设计技术
PPT
淘宝网架构变迁和挑战(Oracle架构师日)
PDF
数据领导者的多云数据集成.pdf
PDF
Traffic server 管理员指南v1.0
PPT
大型网站架构设计
PPTX
Elaster cap 云应用开发平台介绍
PDF
Cloud ready v mware 云计算解决方案
PPT
Java@taobao
PPTX
大规模数据处理
PPTX
基于Silverlight的RIA架构及百度应用
Flex开发实践经验谈(谢敏)
Re Introduce Web Development
敦群學院-SharePoint精英計畫-系統開發-Day 3
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
以 .NET RIA Services 打通 Silverlight 分散式開發之任督二脈
Ajax应用开发最佳实践
Hibernate
企业系统商务智能设计
Cassandra架构与应用
Cloud client : 达尔文信息云浏览器
Ajax设计技术
淘宝网架构变迁和挑战(Oracle架构师日)
数据领导者的多云数据集成.pdf
Traffic server 管理员指南v1.0
大型网站架构设计
Elaster cap 云应用开发平台介绍
Cloud ready v mware 云计算解决方案
Java@taobao
大规模数据处理
基于Silverlight的RIA架构及百度应用
Ad

More from Shanda innovation institute (18)

PPTX
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
PPT
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
PPT
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
PPT
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
PPTX
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
PPTX
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
PDF
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
PDF
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
PDF
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
PPT
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
PPTX
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
PPT
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
PPT
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
PPT
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
PPTX
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
PDF
[人本设计沙龙][2010.04.18]理性的设计(西乔)
PPTX
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
PDF
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
[Flash开发者交流][2010.11.28]swf文件格式和abc代码混淆工具(黄珏坤)
[Flash开发者交流][2010.11.28]松耦合代码之开发方法与工具演示(刘争辉)
[Flash开发者交流][2010.11.28]air android开发的一些心得(邱彦林)
[Flash开发者交流][2010.07.24]浅析flash特效开发(陈勇)
[Flash开发者交流][2010.07.24]简化复杂的flash应用程序(谈熠)
[Flash开发者交流][2010.07.24]数着麻球开发自己喜欢的小游戏(廖湘宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
Flash开发者交流][2010.05.30]flash 原型开发(刘磊)
[Flash开发者交流][2010.05.30]轻量级flash服务器开发框架 刘恒
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]flash独立游戏 现状分析与发展思考(陈静)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[Flash开发者交流][2010.03.28]flash物理引擎(王成)
[人本设计沙龙][2010.04.18]web产品在移动终端的应用和未来(ucd)
[人本设计沙龙][2010.04.18]理性的设计(西乔)
[人本设计沙龙][2010.04.18]开放平台(谭思亮)
[人本设计沙龙][2010.04.18]第二届人本设计沙龙活动介绍(丁宇)
Ad

[Flash开发者交流][2010.03.28]flex中的数据绑定和列表模式(徐哲)