FLEX学习笔记:对拖动行为的深入认识——DragManager, dragInitiator, dragSource 这三个东西究竟是个什么玩意
2011-08-12 15:13
465 查看
开始拖拽对象,doDrag方法初始化拖拽动作中的所有数据:
DragManager.doDrag(
dragInitiator:派发拖拽事件的目标对象
dragSource:拖拽中的数据源,用来传递数据。通过定义DragSource对象来设置数据源,该对象的方法 addData(obj, "name") 可以添加数据。然后使用dataForFormat("name") 来获取数据,使用前用hasFormat("name)
来判断是否存在该对象。
mouseEvent:鼠标事件对象,包含了拖拽事件开始时的鼠标信息
dragImage:可选,一个可视化的Flex 组件,用来代替目标对象的显示,将在拖拽过程中一直跟随鼠标。如果没有指定,默认会使用一个矩形来代替。
xOffset:x坐标位移量,默认0,表示dragImage 和 目标对象左端的距离
yOffset:y坐标位移量,默认0,表示dragImage 和 目标对象顶端的距离
imageAlpha:默认0.5,表示 dragImage 的透明度,0-1
allowMove:是否允许移动,默认true,实际上这个属性不影响动作
);
来详解一下各个参数的作用:
dragInitiator:启动对象,看dragEnabled 的对象,比如 <mx:TileList id="icons" dragStart="onDragStart(event)" dragEnabled="true" doubleClickEnabled="true" mouseDown="flowIconMouseDownHandler(event)"
> 这样 dragInitiator 就是整个 TileList, 很多元素天生就可以被拖动,我也不知道为什么,比如Button。如果是Button触发的拖动就是 dragInitiator 就是 Button 按钮本身
dragSource:可以往里面塞需要的参数,这样拖动的目标容器就可以处理了!
dragImage:拖动的图片,一般用以下方式创建:
var dragImg:Image = new Image();
dragImg.source = TileList(event.dragInitiator).selectedItem.icon;
dragImg.x = event.localX;
dragImg.y = event.localY;
只需要一个实现 IFlexDisplayObject 接口的物件便可,注意到:所有 UIComponent 都实现了这个接口
DragManager.doDrag(
dragInitiator:派发拖拽事件的目标对象
dragSource:拖拽中的数据源,用来传递数据。通过定义DragSource对象来设置数据源,该对象的方法 addData(obj, "name") 可以添加数据。然后使用dataForFormat("name") 来获取数据,使用前用hasFormat("name)
来判断是否存在该对象。
mouseEvent:鼠标事件对象,包含了拖拽事件开始时的鼠标信息
dragImage:可选,一个可视化的Flex 组件,用来代替目标对象的显示,将在拖拽过程中一直跟随鼠标。如果没有指定,默认会使用一个矩形来代替。
xOffset:x坐标位移量,默认0,表示dragImage 和 目标对象左端的距离
yOffset:y坐标位移量,默认0,表示dragImage 和 目标对象顶端的距离
imageAlpha:默认0.5,表示 dragImage 的透明度,0-1
allowMove:是否允许移动,默认true,实际上这个属性不影响动作
);
来详解一下各个参数的作用:
dragInitiator:启动对象,看dragEnabled 的对象,比如 <mx:TileList id="icons" dragStart="onDragStart(event)" dragEnabled="true" doubleClickEnabled="true" mouseDown="flowIconMouseDownHandler(event)"
> 这样 dragInitiator 就是整个 TileList, 很多元素天生就可以被拖动,我也不知道为什么,比如Button。如果是Button触发的拖动就是 dragInitiator 就是 Button 按钮本身
dragSource:可以往里面塞需要的参数,这样拖动的目标容器就可以处理了!
dragImage:拖动的图片,一般用以下方式创建:
var dragImg:Image = new Image();
dragImg.source = TileList(event.dragInitiator).selectedItem.icon;
dragImg.x = event.localX;
dragImg.y = event.localY;
只需要一个实现 IFlexDisplayObject 接口的物件便可,注意到:所有 UIComponent 都实现了这个接口
相关文章推荐
- FLEX学习笔记:AS里面的Object有什么特别之处?
- 黑马程序员-7-Objective-C学习笔记(OC对象深入认识)
- 小白学《神经网络与深度学习》笔记之三-深度学习是个什么东西
- 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?
- 深入理解Java虚拟机 读书笔记 之 对什么东西进行垃圾回收
- FLEX拖拽效果中的DragManager等关键词学习笔记
- 学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?
- C++学习笔记1-namespace是什么东西?
- flex学习笔记--关于拖动
- android: qq 5.0 demo学习笔记(主 粒子爆炸效果+ViewDragHelper)
- 学习笔记之认识link 的rel 属性canonical
- 深刻认识shift_ram IP core——图像处理学习笔记
- 【MFC学习笔记-作业8-蝴蝶飞~】【什么鬼作业】
- ios开发学习笔记(这里一定有你想要的东西,全部免费)
- flex学习笔记之5 DataGrid
- 行为树-学习笔记(1)
- flex学习笔记 在任意地方监听事件
- 数据结构 学习笔记(一):基本概念:什么是数据结构和算法,应用实例
- Shell学习小结 - 深入认识变量
- FLEX学习笔记