六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 54|回复: 0

Flex的List拖拽事件选择来源控件

[复制链接]

升级  62%

7

主题

7

主题

7

主题

童生

Rank: 1

积分
31
 楼主| 发表于 2013-1-26 13:43:02 | 显示全部楼层 |阅读模式
朋友说他要做的程序上有两组可以互相拖拽的List,大家都知道Flex实现拖拽操作非常简单,只需要在List组件上设置 dragEnabled="true" dropEnabled="true" 两个属性即可,但他的问题是两组List,只能在一组内拖动,不能拖到另一组,所以帮他写了个小例子,判断拖拽的来源组件,只接受来自一个组件的拖拽。代码如下
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal"><mx:Script><![CDATA[import mx.events.DragEvent;import mx.collections.ArrayCollection;private var dataList:ArrayCollection = new ArrayCollection([{name:"a"}]);private var dataList2:ArrayCollection = new ArrayCollection([{name:"b"}]);private var dataList3:ArrayCollection = new ArrayCollection([{name:"c"}]);private function dragEnterHandler(e:DragEvent):void{if((e.dragInitiator as List).id !="l3")e.preventDefault();}private function dragCompleteHandler(e:DragEvent):void{if((e.dragInitiator as List).id !="l3")e.preventDefault();}private function dragOverHandler(e:DragEvent):void{if((e.dragInitiator as List).id !="l3")e.preventDefault();}]]></mx:Script><mx:List initialize="l1.dataProvider=dataList" id="l1" labelField="name" dragEnabled="true" dropEnabled="true" dragMoveEnabled="true" width="100"></mx:List><mx:List  id="l2" labelField="name" dragEnabled="true" dropEnabled="true" dragOver="dragOverHandler(event)" dragComplete="dragCompleteHandler(event)" dragEnter="dragEnterHandler(event)" dragMoveEnabled="true" width="100"></mx:List><mx:List initialize="l3.dataProvider=dataList3" id="l3" labelField="name" dragEnabled="true" dropEnabled="true" dragMoveEnabled="true" width="100"></mx:List></mx:Application>

您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表