- 浏览: 511294 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
wang1352083:
正在搭建tomcat源码.一会儿参照楼主经验搭建spring源 ...
Eclipse中阅读开源项目代码 -
w123456789zzzz:
谢谢你,问题解决了,楼主万岁!!
eclipse中如何安装插件 -
xiaoLee:
...
软件性能测试论文草稿 -
铃儿响叮当:
...
使用firefox调试js -
gogopengyou:
很细心啊
eclipse中如何安装插件
所有的Flex组件都支持拖放操作,一些子集组件还带有其他的拖放功能,为这些组件添加一个属性就可以实现拖放。在Flex里实现拖放是利用的拖放操作管理器及其提供的工具,如下介绍拖放操作管理器:
拖放操作有3个阶段:
A、 初始化
B、 拖拽
C、 释放
根据拖放支持, Flex组件可以分为两类: 增强型拖放功能组件和非增强型拖放功能组件
下面是给予列表的控件都支持增强型的拖拽功能:
DataGrid
PrintDataGrid
Tree
Menu
List
HorizontalList
TileList
对于开发者而言,当使用增强型拖放控件来实现拖拽时,工作会非常简单。很多情况下,只需要对参与拖放的组件设置一个属性即可。
参见试验例子:
上文中的例子包括三个部分: 从dataGrid拖放到dataGrid, 从dataGrid拖放到list,从label拖放到List
注意: 后两部分必须显式地初始化释放目标的dataProvider,也即list控件中的
dataProvider="{targetList}"和dataProvider="{myTargetList}">,否则会报引用空对象的错误。
——————————————拖拽的相关事件——————————————————
拖拽初始事件
释放目标事件
————————————非增强型的重要拖拽类————————————————
DragSource类的方法
请自行查看API
术语 | 定义 |
拖拽初始器 | 从中拖拽出组件的组件或项目 |
拖拽源 | 拖拽的数据 |
格式 | 拖拽源的属性,允许能否将一个对象释放到另一个对象上。拖拽源中的数据与格式相关联。格式的数据类型为就简单的字符串 |
拖拽处理 | 拖拽过程显示的图片 |
释放目标 | 接受释放拖拽代理的组件 |
拖放操作有3个阶段:
A、 初始化
B、 拖拽
C、 释放
根据拖放支持, Flex组件可以分为两类: 增强型拖放功能组件和非增强型拖放功能组件
下面是给予列表的控件都支持增强型的拖拽功能:
DataGrid
PrintDataGrid
Tree
Menu
List
HorizontalList
TileList
对于开发者而言,当使用增强型拖放控件来实现拖拽时,工作会非常简单。很多情况下,只需要对参与拖放的组件设置一个属性即可。
参见试验例子:
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" > <s:layout> <s:BasicLayout/> </s:layout> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <fx:XMLList xmlns=""> <mx:XMLList id="employees"> <employee> <name>Christina Coenraets</name> <phone>555-219-2270</phone> <email>ccoenraets@fictitious.com</email> <active>true</active> </employee> <employee> <name>Joanne Wall</name> <phone>555-219-2012</phone> <email>jwall@fictitious.com</email> <active>true</active> </employee> <employee> <name>Maurice Smith</name> <phone>555-219-2012</phone> <email>maurice@fictitious.com</email> <active>false</active> </employee> <employee> <name>Mary Jones</name> <phone>555-219-2000</phone> <email>mjones@fictitious.com</email> <active>true</active> </employee> </mx:XMLList> </fx:XMLList> </fx:Declarations> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.core.DragSource; import mx.core.IUIComponent; import mx.events.DragEvent; import mx.managers.DragManager; [Bindable] private var dataSource:ArrayCollection = new ArrayCollection([{name:"yao",age:23}, {name:"sun",age:18},{name:"tom",age:40}]); [Bindable] private var targetList:ArrayCollection = new ArrayCollection(); [Bindable] private var myTargetList:ArrayCollection = new ArrayCollection(); private function init():void{ //targetDr.dataProvider = targetGridDs; } private function doDragDrop(event:DragEvent):void{ var dgRow:Object = new Object(); dgRow = event.dragSource.dataForFormat("items"); list.dataProvider.addItem(dgRow[0].name); event.preventDefault(); } private function dragIt(initiator:Label,dsData:String,event:MouseEvent,format:String):void{ var ds:DragSource = new DragSource(); ds.addData(dsData,format); DragManager.doDrag(initiator, ds, event); } private function dragEnter(event:DragEvent,format:String):void{ if(event.dragSource.hasFormat(format)){ DragManager.acceptDragDrop(IUIComponent(event.target)); } } private function doDragDrop2(event:DragEvent,format:String):void{ var myLabelData:Object = new Object(); myLabelData = event.dragSource.dataForFormat(format); mylist.dataProvider.addItem(myLabelData); } ]]> </fx:Script> <mx:DataGrid x="102" y="111" dataProvider="{dataSource}" dragEnabled="true"> <mx:columns> <mx:DataGridColumn headerText="名字" dataField="name"/> <mx:DataGridColumn headerText="年龄" dataField="age"/> </mx:columns> </mx:DataGrid> <mx:Spacer height="50" width="100%"/> <mx:DataGrid x="110" y="289" dropEnabled="true" id="targetDr" > <mx:columns> <mx:DataGridColumn headerText="列 1" dataField="name"/> <mx:DataGridColumn headerText="列 2" dataField="age"/> <mx:DataGridColumn headerText="列 3" dataField="col3"/> </mx:columns> </mx:DataGrid> <s:List x="339" y="111" dropEnabled="true" dataProvider="{targetList}" id="list" dragDrop="doDragDrop(event)"><!--list的dataProvider若不赋初值则会报错--> </s:List> <s:Label x="457" y="97" text="拖我呀" id="testLabel" name="myLabel" mouseDown="dragIt(testLabel,'My data here',event,'myformat')"/> <s:List x="457" y="128" dragEnter="dragEnter(event,'myformat')" id="mylist" dragDrop="doDragDrop2(event,'myformat')" dataProvider="{myTargetList}"> </s:List> </s:Application>
上文中的例子包括三个部分: 从dataGrid拖放到dataGrid, 从dataGrid拖放到list,从label拖放到List
注意: 后两部分必须显式地初始化释放目标的dataProvider,也即list控件中的
dataProvider="{targetList}"和dataProvider="{myTargetList}">,否则会报引用空对象的错误。
——————————————拖拽的相关事件——————————————————
拖拽初始事件
拖拽事件 | 描述 |
mouseDown和mouseMove | 在没有使用dragEnabled组件时,MouseEvent类的事件也用来启动拖放过程。当用户鼠标选择控件并按下鼠标不放时,广播mouseDown事件,移动则... |
dragComplete事件 | ... |
释放目标事件
拖拽事件 | 描述 |
dragEnter | 当拖拽代理从不妙外部移到目标上方时广播 |
dragOver | 在dragEnter事件后,当用户把鼠标移到目标上方时广播 |
dragDrop | 当在目标上方时释放鼠标广播 |
dragExit | 当把数据拖放到目标外部没有释放时广播 |
————————————非增强型的重要拖拽类————————————————
DragSource类的方法
请自行查看API
发表评论
-
手续材料
2012-03-25 22:40 0所发生大幅 <SERVICE CLASS ... -
amcharts
2011-12-18 23:46 40911、AmLegend 2、当宽度不够时出现,解决方案设置Ca ... -
flex4中使用backgroundImage
2011-04-20 17:04 16651、 方式一 可以用BorderContainer把内容包涵进 ... -
Flex PopUpManager总结
2011-04-10 23:51 1199PopUpManager弹出的普通组件与TitleWindow ... -
右键&FVNC
2011-03-28 20:46 14051、需了解的Flex类:Security、 ProgressE ... -
3月份FLex工作日志
2011-03-20 21:39 10711、异常:LabelToolTip655 can only h ... -
我与GEF有个约会
2011-03-13 23:19 851我们的Desinger是基于GEF做的,而如今我可能需要 ... -
Flex组件以几何中心作为中心进行缩放
2011-01-26 21:38 1432控制BlurPopUpEffect控制弹出窗体的位置 ... -
Flex初始化探究
2011-01-26 21:37 905a、 FLex的初始化顺序? 拓展 ... -
mate之Injectors引发的问题
2011-01-25 23:07 9191、背景介绍:系统中含有事件模块,EventListVi ... -
Flex样式、图片以及组件
2011-01-20 19:22 26921、 指定组件的相对高度可以使用percentWidth和pe ... -
Flex个人知识库之Apple组件
2011-01-04 23:08 15082、 如何将网页上复制 ... -
OffLineMap替代方案研究
2010-12-30 22:33 973这个dc展示方案始终是得解决的,我感觉鸭梨很大。花在这个 ... -
Java-Flex通信
2010-12-27 23:09 1358背景:在内网访问 ... -
Flex个人知识库之样式皮肤
2010-12-18 08:58 954学习Flex已经有4、5个月了,也算是入了门吧,基本的 ... -
Flex个人知识库之工作日志2
2010-12-15 22:51 9751、 在dataGrid中设置某特定单元格的样式 使 ... -
Flex资源导航
2010-12-12 09:42 632将自己平时遇到的一些不错的FLex站点、博客等予以记录, ... -
个人FLex知识库之工作笔记
2010-12-12 09:18 1019[size=large]1、 private functio ... -
几条常用的Flex代码
2010-12-12 09:11 6631.复制内容到系统剪贴板 System.setCli ... -
中国城市经纬度数据
2010-12-10 08:38 2227前言暂时空缺... ... – – 表的结构 `cit ...
相关推荐
在 Flex 3 中,常用的方法是使用 `Clipboard` 类,它可以存储各种类型的数据,包括文本、图像和自定义对象。在源对象中,你将数据放入 `Clipboard`;在目标对象中,你从 `Clipboard` 中取出数据。 5. **Web 形式与 ...
### Flex3组件拖放教程知识点总结 #### 一、关于组件拖放 拖放功能是Flex3中一种非常实用的功能,它可以实现用户界面元素的直观交互。通过拖放操作,用户能够选择一个对象(例如`List`控件或Flex中的`Image`控件)...
`DragManager` 是Flex中全局的拖放管理器,负责处理所有的拖放操作,而`DragSource` 则是定义拖放源的类,它定义了被拖动的数据以及与之相关的视觉效果。 首先,要实现拖放操作,你需要设置一个可拖动的组件。这...
这个实例涉及的是在Flex中的Tree组件实现节点的内部拖放功能,这对于创建交互式用户界面,尤其是数据层级结构的展示非常有用。在本文中,我们将详细探讨如何在Flex的Tree组件中实现节点的拖放操作,并且限制可拖动的...
总之,Flex的拖放功能是提升用户交互体验的重要工具,通过合理使用DragManager和UIComponent的API,开发者可以轻松地创建出功能强大且用户体验优良的拖放程序。通过深入学习和实践,开发者可以掌握这一强大的功能,...
2. **组件**:Flex组件是UI元素,如按钮、文本框等,它们预先封装好了样式和行为,开发者可以直接拖放到应用程序中使用。 3. **资源**:包括图片、字体、样式表等,这些资源可以被多个组件或类共享。 4. **元数据**...
本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行...13. 使用拖放 14. 实现导航 15. 使用格式化器和验证器 16. 使用样式定制Flex应用 17. 使用皮肤定制Flex应用 18. 自定义ActionScript组件
在Flex中,实现拖放(Drag and Drop)功能主要涉及两个核心类:`DragManager`和`DragInitiator`。`DragManager`是系统级别的服务,负责管理整个应用的拖放操作,而`DragInitiator`通常是一个可拖动的UI组件,如...
3. 第三方库:除了Flex自身的拖放支持,还有一些第三方库,如DragAndDropLib,提供了更高级的功能和定制选项,例如复杂的拖放规则、多层嵌套的拖放等。 综上所述,Flex的拖放功能是其强大用户界面设计能力的一部分...
为了限制拖放范围,可以设置`allowDrop`属性或使用`dragConstraint`属性来指定拖动边界。`dragConstraint`可以是一个矩形区域,也可以是相对于拖动源的位置。 7. **结束拖放**: 拖放结束后,会触发`dragComplete...
`.flexProperties`, `.project`, `.settings`, `libs`, `html-template`, `src` 可能包含了实现拖放功能的源代码、项目配置和资源文件,通过查看这些文件,可以更深入地学习和实践Flex拖放功能的实现。
以下是一个使用Flex的拖放功能将一个`List`控件中的条目移动到另一个`List`控件的简单示例代码: ```xml <!-- dragdrop\SimpleListToListMove.mxml --> creationComplete="initApp();"> <![CDATA[ import mx...
### Flex基础培训-6-拖放与过滤 #### 拖放操作概念 在现代的交互设计中,拖放操作是一种极为常见的数据处理方式。它不仅简化了用户的操作流程,还提高了应用程序的用户体验。例如,在Windows操作系统中,我们可以...
开发者可以通过拖放或编写代码来使用这些组件,快速构建用户界面。Flex API提供对这些组件的访问和自定义,允许开发者扩展和定制组件行为。 5. **数据绑定** Flex API支持数据绑定,这意味着UI组件可以直接与数据...
使用列表和表格.ppt第11章 使用组合框、步进器.ppt第12章 使用拖放.ppt第13章 界面布局.ppt第14章 使用图表.ppt第15章 使用定制组件.ppt第16章 定制界面.ppt第17章 数据处理和数据服务.ppt第18章 PRC服务.ppt第19章 ...
7. **Flex Builder**:Flex3的开发通常使用Flex Builder IDE,它提供了图形化的设计界面和代码编辑器,方便开发者快速构建和调试Flex应用程序。 通过学习这个示例,开发者可以理解如何在Flex3中实现拖放功能、如何...
同时,可以使用DragManager的clearDragSource()方法来清除拖动源,避免意外的再次拖放。 ```actionscript targetContainer.addEventListener(DragEvent.DRAG_ENTER, handleDragEnter); function handleDragEnter...
Flex是Adobe公司开发的一种基于ActionScript ...通过学习这个"flex拓扑示例(可以拖动)",你可以深入了解Flex的拖放机制,提升你在Flex应用开发中的交互设计能力。同时,它也是理解Flex组件和事件模型的一个实用案例。
总的来说,"flex中拖拉拽好实例objecthandles"是一个关于Flex拖放机制的实践案例,特别强调了ObjectHandle组件的使用,这对于开发具有高度交互性的Flex应用来说是非常有价值的。通过分析和学习这个实例,开发者能够...
在Flex中,拖放(Drag and Drop)功能是一个常见的用户交互模式,允许用户通过鼠标操作将一个对象从一个位置移动到另一个位置,通常在不同的组件之间。这种功能在各种类型的应用程序中都很常见,例如文件管理器、...