一、功能说明:拖控件的功能(类似FLEX,VS 里面的拖控件)。
提示:大家对事件的注册和派发的说法可能不一样。因为在FLEX中和在Java中,叫法有的区别。但是本质是一样的。
注册事件 == 设置监听事件 || 派发事件 == 触发事件 ,也有人叫 “进行广播”
大家知道什么意思就好。
说明:
1、Application页面(放置控件列表,页面容器,属性面板这三个模块的Application页面)[PS:以下简称:主页面 ]
1.1 主页面加载 左、中、右 这三个模块 --> 模块加载技术 ==>暂无教程
2、控件列表模块
2.1 请求服务端数据(这边使用VS) --> 请求服务端数据(UrlLoader) ==> 【教程】【FLEX】#002 请求服务端数据(UrlLoader)
2.2 处理服务端返回的数据(生成控件列表,这里使用Tree控件,直接把传回来的JSON对象复制给Tree)
2.3 设置Tree控件的拖动 --> 控件拖放技术 ==> 【教程】【FLEX】#005 拖动
3、控件容器
3.1 注册控件列表的拖动事件 -->自定义事件的创建、注册,与派发技术,模块之间通讯技术 ==> 【教程】【FLEX】#003 自定义事件、模块间通讯
3.2 处理拖动的事件,生成控件,派发事件(初始化属性面板事件)
3.3 控件在控件容器的拖动,和控件大小的改变,派发 控件改变事件 -->控件位置、大小改变技术
3.4 注册属性面板,属性值改变派发的事件(改变属性值,控件跟着改变,eg:改变width这个属性,控件的也要跟着改变)
4、属性面板
4.1 注册控件容器里面,控件生成之后派发的事件(初始化属性面板事件) -->反射机制 ==> 【教程】【FLEX】#004 反射机制
4.2 事件处理方法(生成属性面板)
4.3 为属性面板中的属性值(TextInput控件),注册CHANGE事件(在事件处理里面 派发属性值改变事件)
4.4 注册 控件改变事件,并进行处理(改变属性面板中,对应属性的属性值)
二、该功能用到的技术:
1、模块加载
2、请求服务端数据
3、拖动
4、自定义事件(创建,注册事件,派发事件)
5、控件的位置、大小改变算法
6、反射机制
三、整体思路简单流图: