- 浏览: 137127 次
- 性别:
- 来自: 郑州
文章分类
最新评论
-
Ken艹小哲:
太赞了 哥们 加扣
猜数字问题的最少步数算法. -
chenyuan122912:
...
解决AS3 Socket编程中最令人头疼的问题 -
hyx0914:
有源代码打包下载的吗?
Flex地图分块加载的实现 -
tianhai110:
非常有价值的 测试总结
时间效率,Timer和EnterFrame在FP 10.1之后测试和建议 -
763675117:
你好,fengxiangpiao,看了你的文档,我的需求和你差 ...
解决MovieClip打印问题 转
可视化的开发环境最大的特点是允许你在一个应用程序中通过鼠标的选择、移动,灵活地处理屏幕上的对象。Flex Drag and Drop Manager 可以选择一个对象(如 List 控件中的数据项)或者一个 Flex 控件(如 Image 控件),然后拖拽它到其他组件或者将其数据添加到其他组件中。 所有的 Flex 组件都支持 drag-and-drop 操作。Flex 也对一些组件提供了特殊的附加支持,如 List,Tree 和 DataGrid。 drag-and-drop 操作有三个主要的步骤:初始化,拖拽和释放。下面的段落从大的角度描述三个步骤。 初始化(Initation):用户初始化 drag-and-drop 操作通过鼠标选择一个组件或者组件中的数据项,然后按住鼠标键不放,移动组件或数据项。例如,用户选择了一个List控件中的数据项,按住鼠标键,移动鼠标几个像素。这个被选择的组件称为拖拽初始器(drag initiator)。 拖拽(Drag):按住鼠标键时,用户在Flex程序中移动鼠标。Flex 在拖拽过程中显示一个图像,称为拖拽代理(drag proxy)。拖拽源(drag source)(一个 DragSource 对象)包含被拖拽的数据信息。 释放(Drop):当用户移动拖拽代理到其它 Flex 组件之上,那个组件成为一个可能的释放目标(drop target)。释放目标会检查拖拽源,确认其中的数据是否与目标所接受的目标结构相一致。如果一样,允许用户可以将数据释放到组件里;否则释放目标会拒绝释放操作。 紧接着一个成功的释放操作,Flex 在目标中添加数据,同时(可选的),在数据原来的位置删除它。 list-based控件使用 drag-and-drop 下面的控件包含了对 drag-and-drop 操作的内置的支持: 将这些控件转变为拖拽初始器,你需要做的是将 dragEnabled 属性设置为 true。你没有必要定义一个事件侦听器来启动一个拖拽操作。Flex 允许你通过拖拽将数据项从一个 drag-enabled 控件移动到一个 drop-enabled 控件,或者按住 Control 键同时拖拽数据项来复制他们。 这些控件提供了一些属性和方法来管理 drag-and-drop 操作。下面的表格列举了部分属性和
属性 描述 dragEnabled 控件是否允许拖拽操作,默认为false dropEnabled 控件是否允许释放操作,默认为false dragMoveEnabled 拖拽数据是否移动到接受控件中,值为false时表示复制,默认为false
drag-and-drop 操作
下面的简单例子展示了如何从一个 List 控件复制数据项到另一个 List 控件:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
private function initApp():void {
srclist.dataProvider = ['Reading', 'Television', 'Movies'];
destlist.dataProvider =[];
}
]]>
</mx:Script>
<mx:List id="srclist" height="100" allowMultipleSelection="true" dragEnabled="true"/>
<mx:List id="destlist" height="100" dropEnabled="true" x="271" y="0"/>
</mx:Application>
通过将第一个 List 中 dragEnabled 属性设置为 true,第二个List的 dropEnabled 属性设置为 true,你就可以让用户将数据项安全的从第一个 List 拖拽到第二个 List。
因为 dragMoveEnalbe 属性默认值是 false,你目前只是从一个 List 复制数据项到另一个。如果你修改例子将第一个 List 的 dragMoveEnabled 设置为 true,你可以移动数据项,就像下面的例子显示的:
<mx:List id="srclist" height="100" allowMultipleSelection="true" dragEnabled="true" dragMoveEnabled="true"/>
默认的操作是移动数据项。如果想复制数据项,在拖拽时按住 Control 键。
如果你打算实现双向的拖拽,可以将两个列表的 dragEnabled 属性和 dropEnabled 属性设置为 true,如下:
<![CDATA[
private function initApp():void {
srclist.dataProvider = ['Reading', 'Television', 'Movies'];
destlist.dataProvider =[];
}
]]>
<mx:List id="srclist" height="100" allowMultipleSelection="true" dragEnabled="true" dropEnabled="true" dragMoveEnabled="true"/>
<mx:List id="destlist" height="100" allowMultipleSelection="true" dragEnabled="true" dropEnabled="true" dragMoveEnabled="true"/>
下面的例子演示了使用 DataGrid 替换 List 达到同样的效果:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
private function initApp():void {
srcgrid.dataProvider =
[
{ Artist:'Carole King', Album:'Tapestry', Price:11.99},
{ Artist:'Paul Simon', Album:'Graceland', Price:10.99},
{ Artist:'Original Cast', Album:'Camelot', Price:12.99},
{ Artist:'The Beatles', Album:'The White Album', Price:11.99}
];
destgrid.dataProvider =[];
}
]]>
</mx:Script>
<mx:DataGrid id="srcgrid" allowMultipleSelection="true" dragEnabled="true" dropEnabled="true" dragMoveEnabled="true" x="43" y="142"/>
<mx:DataGrid id="destgrid" allowMultipleSelection="true" dragEnabled="true" dropEnabled="true" dragMoveEnabled="true" x="383" y="142" width="250"/>
</mx:Application>
上面就是在flex中内置组件支持的拖放效果和操作的方法,flex还有自定义的拖放方法,下回在说说自定义拖放的操作。
发表评论
-
最全的Flex网站
2011-10-15 23:18 722一、国外站点 1.资源 类Adobe Flex 2 ... -
时间效率,Timer和EnterFrame在FP 10.1之后测试和建议
2011-04-23 22:19 1056关于Timer还是EnterFrame的选择,一直是很 ... -
时间效率,Timer 和 EnterFrame 在 FP 10.1 之后测试和建议
2011-04-23 22:16 1059关于Timer还是EnterFrame的选择,一直是很多AS3 ... -
Socket粘包问题
2011-04-22 23:21 1027这些天做类似QQ空间的 ... -
关于Flash Socket通信的安全策略问题的一点心得
2011-04-22 22:36 697昨天做测试的时候遇到 ... -
FLEX入门实例--------FLEX全屏功能实现及右键菜单
2011-03-26 11:58 815FLEX的全屏功能的实现,光写AS还不够,还需要对JS部分做一 ... -
flex中的Text属性
2010-12-08 12:31 872不同于Lable只显示单行文本,Text可以显示多行文本, ... -
Flex跨域问题
2010-11-08 17:55 790From ESRI: The client brow ... -
Flex屏蔽并自定义鼠标右键菜单(转载)
2010-11-08 17:53 878最近手头有个项目需要屏蔽Flex鼠标右键菜单并自定义新的fle ... -
使用 IBM Rational Functional Tester 7.0.1 测试 Flex 应用程序
2010-11-05 21:45 838关于这篇文章必要的信息 这篇文章假定您已经对使用 IBM® ... -
在 Ajax 应用程序中实现实时数据推送
2010-11-05 21:40 667简介 Ajax 技术已经存在了一段时间,开发的动力已经真正开 ... -
使用 Flex 和 Dojo 开发交互式Web应用程序
2010-11-05 21:38 988引言 以用户体验为核 ... -
Flex 应用内存泄露的分析与诊断
2010-11-05 21:36 802引言 Flex 采用 ActionScrip ... -
flex SystemManger
2010-11-05 16:35 689软件编程牛人网 Framework Fundamentals ... -
Flex 不同 application 之间传参数
2010-11-05 16:33 486软件编程牛人网 通过主影片来获得所有子影片的systemma ... -
如何在flash保留小数位
2010-11-04 20:07 823在家上网赚钱更容易 fl ... -
实例讲解Flex3的SharedObject对象用法
2010-11-04 16:01 757在家上网赚钱更容易 Flex中的SharedObj ... -
Flex中12个最基本、最简单但却最有用的函数
2010-11-04 15:54 690在家上网赚钱更容易 No.1 复制内容到剪贴板 S ... -
谈谈Flex中ArrayCollection的复制(克隆)
2010-11-04 15:51 718在家上网赚钱更容易 在Flex的开发过程中,常常会遇到复 ... -
flex中的拖放操作(二)
2010-11-04 15:46 769在家上网赚钱更容易 手动添加 drag-and-drop ...
相关推荐
而在 Adobe AIR 应用中,由于有更广泛的系统访问权限,可以实现跨应用程序或桌面的拖放操作。 示例中的 `CanvasDD.mxml` 文件很可能是展示如何在一个 Canvas 组件上实现拖放功能的代码实例。`myComponents` 文件夹...
通过拖放操作,用户能够选择一个对象(例如`List`控件或Flex中的`Image`控件),并将其拖动至另一个组件(容器)中,最终将该对象添加到目标组件内。 #### 二、关于拖放操作 拖放操作主要包括三个阶段:初始化、...
`DragManager` 是Flex中全局的拖放管理器,负责处理所有的拖放操作,而`DragSource` 则是定义拖放源的类,它定义了被拖动的数据以及与之相关的视觉效果。 首先,要实现拖放操作,你需要设置一个可拖动的组件。这...
在本文中,我们将详细探讨如何在Flex的Tree组件中实现节点的拖放操作,并且限制可拖动的节点以及拖动的目标位置。 首先,我们需要了解Flex Tree组件的基本用法。Tree组件用于显示层次结构的数据,每个节点代表数据...
在现代的交互设计中,拖放操作是一种极为常见的数据处理方式。它不仅简化了用户的操作流程,还提高了应用程序的用户体验。例如,在Windows操作系统中,我们可以通过简单的拖拽动作将一个文件移动到另一个文件夹中...
总的来说,"flex中拖拉拽好实例objecthandles"是一个关于Flex拖放机制的实践案例,特别强调了ObjectHandle组件的使用,这对于开发具有高度交互性的Flex应用来说是非常有价值的。通过分析和学习这个实例,开发者能够...
`DragManager`是系统级别的服务,负责管理整个应用的拖放操作,而`DragInitiator`通常是一个可拖动的UI组件,如Button、Canvas等。 1. **DragManager**: - `startDrag()`方法:这是启动拖放操作的关键,通常在...
以下是一个使用Flex的拖放功能将一个`List`控件中的条目移动到另一个`List`控件的简单示例代码: ```xml <!-- dragdrop\SimpleListToListMove.mxml --> creationComplete="initApp();"> <![CDATA[ import mx...
3. **定义拖放范围(Drop Target)**:拖放操作还需要一个或多个接受拖动数据的目标。目标组件通常也需要是UIComponent的子类,通过监听`dragEnter`, `dragDrop`, 和 `dragLeave`事件来处理拖放行为。 4. **监听...
1. **拖放功能**:在Flex中,实现拖放操作主要依赖于`DragManager`和`DropTarget`类。`DragManager`负责管理整个应用程序的拖放行为,而`DropTarget`则定义了可以接受拖放操作的目标对象。在这个例子中,商品图标...
在Flex中,拖放操作分为三个主要部分:启动源(DragSource)、目标区域(DropTarget)以及拖放事件。启动源是用户可以开始拖动的组件,目标区域是用户可以放下被拖动对象的地方。Flex提供了一系列的DragManager类和...
Flex中的拖放操作主要依赖于`DragManager`类,它是整个拖放过程的核心。`DragManager`提供了一系列静态方法和属性,用于控制和监控拖放行为。例如,`DragManager.enableDrag()`可以开启拖放功能,而`DragManager....
4. 拖放效果:通过设置`DragManager.acceptDrag()`和`DragManager.dropEffect`,可以控制拖放操作是否被接受,以及拖放时的视觉反馈,如“copy”、“move”等效果。 三、Flex Drag-and-Drop库的扩展和自定义 1. ...
首先,我们需要了解Flex4中的DragManager类,它是实现拖放操作的核心。DragManager提供了开始拖放、监听拖放事件以及处理拖放结果的方法。当用户开始拖动一个对象时,我们可以通过调用DragManager的beginDrag()方法...
你可以使用`DragManager.addData()`方法添加数据到拖放操作中,这样当拖放操作结束时,接收方可以通过`event.data`获取这些数据。这对于实现更复杂的功能,如在不同组件间传输信息非常有用。 4. **DragEffect**:...
在Flex中,实现拖放操作主要依赖于两个主要类:`DragManager`和`DropTarget`。`DragManager`是系统级别的对象,负责管理整个应用程序的拖放行为,而`DropTarget`则定义了可接收拖放操作的目标区域。 1. **...
通过分析项目压缩包中的文件,我们可以深入理解Flex在拖放操作中的实现方式。 首先,`.actionScriptProperties`文件是ActionScript的配置文件,其中包含了关于项目中ActionScript编译器设置的信息,如编译器选项、...
5. **Flex Component Suite**: Flex框架内含一套丰富的预建UI组件,如按钮、文本输入框、列表、图表等,这些组件可拖放使用,使得快速开发成为可能。 文档中的"Flex中文帮助No4章"可能涉及以下内容: - **数据绑定...
这个"flex拓扑示例(可以拖动)"是一个关于如何在Flex中创建可拖动元素的实践项目,非常适合那些希望提升Flex编程技能,尤其是对用户交互感兴趣的开发者。 在Flex中,拖放功能主要通过Flash Player的内置DragManager...
拖放操作在Flex中分为两个主要部分:拖动源(Drag Source)和放置目标(Drop Target)。拖动源是用户开始拖动操作的对象,而放置目标是用户可以放下该对象的目标区域。Flex提供了DragManager类来处理这些操作,并且...