网站大量收购独家精品文档,联系QQ:2885784924

第11章 Flex 4组件间处理:拖放.pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
11.1 拖放行为概述 11.2 在列表类组件中使用拖放 11.3 对非列表类组件使用拖放 11.1.1 拖放过程 1.初始化 用户通过使用鼠标选中一个Flex组件,或组件中的某一个选项,按住鼠标移动组件或选项移动,发起一个拖放操作。 2.拖动 当按住鼠标按键,用户在Flex应用程序中移动鼠标,Flex显示一个表示正在拖放的图片,这个图片代表拖放对象,称为“拖动代理”(Drag proxy)。 3.放下 当一个用户移动“拖动代理”划过一个Flex组件的时候,这个组件有可能变成“放下目标”(Drop target)。 Flex中的拖放操作涉及的类主要有以下几个。 (1)DragManager:管理拖放操作。 (2)DragSource:确定并且储存那些被拖放的数据。 (3)DragEvent:响应拖放事件。 Flex中的拖放操作涉及的事件主要有以下几种。 (1)mouseDown和mouseMove。 mouseDown事件在用户通过按住鼠标键选择一个组件时派发。 标移动时派发。 (2)dragEnter。 当一个拖放代理从目标组件外移动到目标组件上时派发。一个组件成为一个放下目标时必须为这个事件定义一个监听器。 (3)dragDrop。 当鼠标在目标上释放时派发。 (4)dragOver和dragExit。 dragOver事件当用户在目标组件上移动鼠标时派发;dragExit事件当用户拖动代理移出目标组件,并且没有放置数据时派发。 (5)dragComplete。 在一个拖放操作完成时派发。 用户只要定义组件中的一些属性,就可以实现拖放操作。涉及如下几个属性。 (1)dragEnabled (2)dragMoveEnabled (3)dropEnabled 对于非列表类组件或dragEnabled属性值设为false的列表类组件,需要人为控制拖动和放下事件,实现的原理如下所示。 (1)对于没有dragEnabled属性的组件,必须使组件能够接收到用户已经开始启动一个拖放操作,然后使其明确成为一个拖动初始者。 (2)当鼠标处于按下状态时,用户可以拖动鼠标,Flex则显示移动的拖动代理图像。 (3)如果用户将拖放代理移动到一个Flex组件上,则Flex派发一个dragEnter事件到这个准放下目标。 (4)dragEnter事件监听器将检查DragSource对象,以便决定拖放数据是否是可接受的格式。 (5)如果放下目标拒绝放下,放下目标组件的父级链中组件将逐一被检查,从而检测是否有可以接受释放数据的组件。 (6)如果放下目标或者其父组件中的一个组件可以接受放下,当用户在目标上移动代理时,Flex派发一个dragOver事件。 (7)如果用户放弃在放下目标上放下数据,并且一直没有松开鼠标同时将拖放代理移动到释放目标之外,则Flex派发一个dragExit事件,放下目标可以处理这个事件。 (8)如果用户在放下目标上松开鼠标,则Flex派发一个dragDrop事件,然后放下目标的dragDrop事件监听器添加拖放数据到目标中。 (9)如果拖放操作完成,则Flex派发一个dragComplete事件,拖放初始者可以处理这个事件。 11.2.1 基本拖放 在panel容器中定义两个List组件sl和dl,sl作为拖放初始者,dl则作为放下目标。将sl的dragEnabled和dragMoveEnabled属性值都设为true,表示运行拖出和移动数据,将dl的dropEnabled属性值设为true,表示允许放下数据。代码如下: s:Panel title=基本拖放示例 width=75% height=75% horizontalCenter=0 verticalCenter=0 s:HGroup paddingLeft=10 paddingTop=10 s:VGroup s:Label text=可选择的数据 / s:List id=sl height=150 allowMultipleSelection=true dragEnabled=true dragMoveEnabled=true/ /s:VGroup s:VGroup s:Label text=所选择的数据 / s:List id=dl height=150 dropEnabled=true/ /s:VGroup /s:HGroup /s:Panel 初始化sl和dl中的数据源,代码如下: fx:Script ![CDATA[ import mx.collections.ArrayCollection; private function init():void { sl.da

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档