加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FLEX学习笔记:对拖动行为的深入认识——DragManager, dragIniti

发布时间:2020-12-15 01:20:51 所属栏目:百科 来源:网络整理
导读:? 开始拖拽对象,doDrag方法初始化拖拽动作中的所有数据: DragManager.doDrag( ? dragInitiator :派发拖拽事件的目标对象 ? dragSource :拖拽中的数据源,用来传递数据。通过定义DragSource对象来设置数据源,该对象的方法 addData(obj,"name") 可以添加数

?开始拖拽对象,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 都实现了这个接口

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读