- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[第12章使用拖放
12.1 拖放概述 拖放原本是桌面应用中非常普通的功能,。许多网页编程语言都不支持拖放功能,很少使用在浏览器界面中。但是使用拖放能够使用户更加直观的进行操作,更贴近生活中饿操作习惯。Flex的出现,可以浏览器应用中实现与桌面应用同样的拖放功能。 在将拖放迁移到浏览器应用的同时,Flex制定了更为丰富的拖放特性。本节介绍在Flex中拖放的基本步骤,、拖放相关类,以及在拖放过程中触发的事件。 12.1.1 拖放的过程 在Flex中,拖放管理器负责数据项的拖放等任务。在整个拖放的过程中,共分为以下3个步骤。 (1)初始化(Initiating):包含要拖放的条目的控件或者组件。如图中选中的计算机网络列表。 (2)拖(Drargging):按住鼠标,将拖放对象拖到其他控件时,拖放管理器在鼠标箭头显示图片,表明正处于拖放过程中。该图片称为拖放代理。如图6.81中的拖动条目时显示的图标。 (3)放(Dropping):当鼠标将拖放的条目放到目标控件中后,该条目将插入的目标控件中。 在拖放管理器中,使用了一些专业术语,如下所示。 拖放对象(Drag initiator):要拖放的条目。 拖放源(Drag source):要拖放的数据,拖放的数据在图中是不可见的。 格式(Format):拖放源中的属性,说明拖放条目的数据。 拖放代理(Drag proxy):拖放时显示的图片。在可以拖放的控件中时显示绿色加号图标,否则,显示红色叉号图标。 拖放目的地(Drop target)拖放过程的终点。 12.1.2 拖放中的相关类 在拖放的过程中,默认的拖放管理器往往不能满足需要,可以手动编写拖放方法。在手动定义拖放行为时,需要使用Flex中的与拖放相关的类。拖放过程主要涉及下面3个类。 DragManager类:负责管理拖放的操作,其中doDrag方法为拖放的开始。 DragSource类:包含要拖放的数据,以及拖放的一些其他特性。例如关于数据的一些事件侦听。 DragEvent类:拖放过程中发生的事件都继承该类。 12.1.3 拖放中的相关事件 在使用上述类编写自定义的拖放时,可能根据需求,还需要对拖放过程中发生的事件做出响应。拖放过程中发生的事件分为拖放的起始控件和拖放的目标控件即拖放起始者和拖放目的地。 起始控件的事件如下。 mouseDown:当鼠标选中要拖放的条目触发的事件。 mouseMove:当鼠标拖动要拖放的条目时触发的事件。 dragComplete:当鼠标将条目拖出初始控件中时,发生该事件。 目标控件的事件如下。 dragEnter:当拖放代理从控件外部移动控件中时,触发该事件。 dragOver:当拖放条目进入到目标控件中时,触发该事件。该事件发生在dragEnter之后。 dragDrop:当用户在目标控件中释放鼠标时,触发该事件。 dragExit:放用户将拖放的条目拖出后,未到达目标控件时触发的事件。 12.2 在列表类控件中使用拖放 Flex中允许在列表类控件之间进行拖放。通过拖放简化了列表操作,方便用户使用。图和显式了在两个列表控件中进行拖放。图是学生选课的部分界面。学生可以将选择的课程从左边的列表中,拖放到右边的已选择列表。 12.2.1 控件中相关拖放的属性 在列表类的控件中,有些属性是与拖放相关的,如表所示 12.2.2 在列表控件中使用拖放 中实现了在列表控件中的拖放,将左边列表控件的dragEnabled设为true,右边列表控件的dropEnabled属性设为true即可,代码如下。 (详细内容请参照本书) 12.3 在数据表格控件中使用拖放 上一节讲述了在两个列表控件之间进行拖放。如果要在显示多项数据的数据表格控件之间进行拖放,构造方式与列表类控件类似。图是两个数据表格控件之间进行拖放的示例。2个数据表格的列表项并不一致,目标控件的列表项仅为源控件的一部分。在进行拖放时,目标控件会根据控件列项的dataField属性,在拖放的数据中对应的属性取值,所以在图中将4项内容的表格项拖到2项的控件中时,只显示目标控件中需要的内容。 12.4 在树形列表控件中使用拖放 树形控件之间进行拖放,可以将拖放的节点插入到鼠标指向的位置。拖放树枝节点,树枝节点下所有内容也会自动拖放目标控件中。下图是在两棵树之间进行拖放。图拖放包含字节点的树枝节点,图是拖放后展开“国外“节点的情况。 12.5 在树形和列表控件中实现拖放 上面的所有例子都是在相同类型的控件之间进行拖放,即dragSource中的数据格式都是一致的。如果要在树形和列表控件逐渐直接进行拖放,拖放后的数据很有可能不符合目标控件的需求。在前面简述过树形控件的数据类型(dragSource中的format)为“treeItems”。而其他支持拖放属性的
原创力文档


文档评论(0)