打赏
Guide
Guide
- 介绍
- 编辑器使用基础
- 元件
- 图片
- 动画
- 图形
- 装载器
- 文本
- 富文本
- 组
- 组件
- 滚动容器
- 控制器
- 关联系统
- 标签
- 按钮
- 下拉框
- 进度条
- 滑动条
- 滚动条
- 列表
- 窗口系统
- Popup
- Drag&Drop
- 动效
- 自适应
Unity
- 显示UI面板
- 坐标系统
- 纹理集的处理
- 字体的处理
- 输入处理
- 事件机制
- 插入模型/粒子/Canvas
- 曲面UI
- DrawCall优化
- 在Lua中使用
- 特色功能
- 常见问题
Cocos2dx
- 在Cocos2dx中使用FairyGUI
CryEngine
- 在Cry Engine中使用FairyGUI
- Cry-坐标系统
- Cry-输入处理
- Cry-事件机制
LayaAir
- 在LayaAir中使用FairyGUI
Egret
- 在Egret中使用FairyGUI
Drag&Drop
自由拖放
使一个元件能够被拖动,很简单,设置draggable属性就可以了,例如:
|
设置后当玩家按住元件,就可以随意拖动它。可以设置一个矩形限制拖动范围:
|
拖动开始、拖动的过程和拖动结束都可以获得通知:
|
转换拖动
如果不希望点击元件的任何地方都可以拖动,那么可以用转换拖动的方式。例如FairyGUI里的窗口,点击它的标题栏,就可以拖动窗口,我们以这个为例子分析怎么实现:
|
通过以上的方式,实现当_dragArea被尝试拖动时,会转换为Window自身的拖动。
替身拖动
拖动只能在元件的父组件内移动,如果你需要在全屏幕内移动,那么需要用到替身拖动。替身拖动的启动方式需要先作转换:
|
使用了替身拖动后,如果要检测拖动结束,不能在监听原来的对象,而应该使用:
|
DragDropManager还提供了常用的拖->放功能,如果一个组件需要接收其他元件拖动到它里面并释放的事件,可以使用:
|
DragDropManager使用了一个图片资源表达替身,这个图片是用装载器显示的。这个装载器是DragDropManager.inst.dragAgent,你可以调整它的参数以适应实际项目需求。
如果你的替身不是一个图片那么简单,比如你需要用一个组件作为替身,那么你可以定义自己的DragDropManager,直接复制一个DragDropManager,然后在上面修改就可以。这个类的设计就没有考虑到所有实际情况的,它的目的就是给你参考。
发现错误或想贡献文档?
在 Github 上编辑此文档!