【实战项目】【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、反射机制



三、整体思路简单流图:

时间: 2024-08-13 07:23:50

【实战项目】【FLEX】#900 实现拖控件功能的相关文章

Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下:   1.UI控件与布局     2.MVVM     3.数据绑定     4.await/async     5.Linq查询     6.WCF RIA Services     7.序列化     8.委托与事件 1.UI控件与布局 常用的主要是Grid.StackPanel.Border,其中最常用的的是Grid,是一

不拖控件的asp.net编程方法——第1回

以前写的asp.net程序基本上都用了webfrom的控件编写的,当然有个好处就是易入门.快速效率高,但感觉自己这了几个小系统,还是没学到什么东西,感觉心里没底,因为都是封装好的东西,拿来就用的,功能能实现,但原理性的东西不明白,所以遇到有些错误根本无从下手,虽然貌似很多公司开发都有控件,但作为学生个人觉得还是别用好,当然那些自定义控件的又另当别论. 本想深入研究asp.net MVC,但发现不懂的知识太多了,所以现在暂时先学HTML+ashx这样的形式,换成这种形式写还真不习惯,下面把我今天学

不拖控件ASP.NET——一般处理程序

    习惯了微软提供的一系列Web控件,用着很方便,最近看了一种新的方式不用拖控件就能实现同样的功能,究竟拖控件好还是不拖控件好,随着以后学习的深入,答案会慢慢揭晓,希望一直关注哦!今天我们来看看一般处理程序. 1.      一般处理程序(HttpHandler) ?  引入     我们从一个网站打开的流程讲起.如下图:     流程细说:用webForm开发一个模拟的登陆页面,用户打开登陆页面,填入相应的用户信息:用户名和密码,点击[登陆]按钮,浏览器将用户名和密码发送给网站服务器,网站

【Visual Basic】纯代码不拖控件,利用动态生成控件的方式完成一个简单的四则运算计算器

vb6是一个典型的拖控件加代码的编程代表,因此也一直被认为难登大雅之堂,但是,在vb6中可以完全纯粹地使用代码控制这个窗体与窗体的控件.这样生成出来的控件位置摆放精确无比,无须拖好控件之后,再利用工具栏的"格式"菜单慢慢地调整大小.这种方式的确定是声明一个控件要耗费大量的代码,但其实Java中的Swing,HTML+CSS排放控件,比这好不了多少. 当然,比vc6中mfc的代码简单了不少,具体见<[mfc]基本对话框程序--加法器>(点击打开链接) 一.基本目标 利用纯粹代

VC/MFC ListCtrl 控件功能使用汇总(转)

以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 SDK:以 "ListView_"开头的一些宏.如 ListView_InsertColumn -------------------------------------------------------------------------------- 1. CListCtrl 风格      LVS_ICON: 为每个item显示大图标      LVS_SMALLIC

不拖控件ASP.NET——NVelocity(2)

    上节课我们讲述了NVelocity的简单应用,但是没有和数据库打交道,这次我们来和数据库连接实现人员的增删改查. 1.      上篇博客回顾     链接:http://blog.csdn.net/u010955843/article/details/42528761     开讲之前,我们先来回顾上一节课讲的内容,主要是两个页面,一个是一般处理程序的页面,另一个是渲染后的模板. ?  机制     上篇博客中我们建立一个person类,并且在一般处理程序中对其进行了赋值,之后交给了模

用到afinal注解的项目代码混淆后某些控件view点击事件无效问题

最近一个项目上线,要求代码混淆,可混淆后某些控件的点击事件无效,后来发现是afinal注解的问题.查了半天资料,后来又问了afinal的相关人员,他们给出的解决方案是排除混淆被注解的类,这样的话意味着基本所有的activity和fragment都不能混淆,这不是我想要的. 后来反编译代码比较排除被注解的类和不排除被注解类的区别,比较发现,那些不能点击的控件的定义代码被优化掉了,被优化掉的原因就是因为用注解后,在代码中该控件的实例没有其他地方用到,所以程序就认为该代码没有被用到,就被注视掉了. 知

arcgis api for flex 除去 esri map控件中的logo标志

在程序的applicationComplete方法中添加下列代码 private function reallyHideESRILogo(map : Map) : void { for(var i : int = 0 ; i < map.numChildren ; i++){ var component : UIComponent = map.getChildAt(i) as UIComponent; if(component.className == "StaticLayer"

React-Knockout无缝粘合,JavaScript项目MVVM框架下的控件化

这次讲的是把React和Knockout结合使用的示例,两个框架各有所长,也有不同的特点和特色,这次把他们结合起来,似乎有些胆大妄为,然而有时候就是容易遇到一些奇怪的需求.使得我们不得不去出一些奇招.然而这样真的很奇怪吗?实际上并不是这样子,使用react创建控件,再使用knockout构建MVVM框架,开发流程可以变得有条不絮,易于扩展维护,同时可实现代码重用,减少开发的工作量. 1.要构建React-Knockout MVVM框架我们首先需要下载React和knockout的JS库 Reac