首页 > 代码库 > 【实战项目】【FLEX】#900 实现拖控件功能

【实战项目】【FLEX】#900 实现拖控件功能

一、功能说明:拖控件的功能(类似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、反射机制


三、整体思路简单流图:

技术分享

【实战项目】【FLEX】#900 实现拖控件功能