Flex 4 ( Flash Builder 4 ) DropDownList实现数据拖拽 -示例

 

下面是一段小Demo ,实现了数据从【容器1】(控件为List)拖入【容器2】(控件为DropDownList)
 其中相关属性在FB4中,鼠标移入都有相应的提示,在此不再多说,看代码:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
  xmlns:s="library://ns.adobe.com/flex/spark" 
  xmlns:mx="library://ns.adobe.com/flex/mx">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.core.DragSource;
import mx.events.DragEvent;
import mx.managers.DragManager;
import mx.controls.Alert;

//初始化拖拽目标
protected function drageIt(event:MouseEvent):void
{
// TODO Auto-generated method stub
var dragInit:List  = event.currentTarget as List;
var dragSource:DragSource = new DragSource();
dragSource.addData(dragInit,"name");
// Alert.show("abc","提示!!");
DragManager.doDrag(dragInit,dragSource,event);
}

//拖拽移入
protected function dragEnterHandler(event:DragEvent):void{
var  dropTarget:DropDownList = event.currentTarget as DropDownList;
if(event.dragSource.hasFormat("name")){
DragManager.acceptDragDrop(dropTarget);
}
}
//执行拖拽
protected function dragdropHandler(event:DragEvent){
  var name:List =  List(event.dragSource.dataForFormat("name"));
  
//  Alert.show(name.selectedItem.labelField,"提示!!");
  if(null!=name.selectedItem ){
  this.objs3.addItem(name.selectedItem.labelField);
  }
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 执行拖拽时要确保所有参与控件的dataProvider是同类型,并且已经初始化!!!!!!!! -->
 
<s:ArrayList id="objs1"   >
<fx:Object labelField ="LanDian" />
<fx:Object labelField ="OS"/>
<fx:Object labelField ="Micorosoft"/>
<fx:Object labelField ="航天器"/>
<fx:Object labelField ="流星"/>
<fx:Object labelField ="海王星"/>
<fx:Object labelField ="ENNA"/>
<fx:Object labelField ="PiaoLan"/>
<fx:Object labelField ="积雨云"/>
<fx:Object labelField ="第六感"/>
<fx:Object labelField ="雷雨"/>
<fx:Object labelField ="田园风光"/>
<fx:Object labelField ="北欧风情"/>
<fx:Object labelField ="南极洲"/>
<fx:Object labelField ="海洋"/>
<fx:Object labelField ="银河"/>
 
</s:ArrayList>
<s:ArrayList id="objs2" >
</s:ArrayList>
<s:ArrayList id="objs3" >
</s:ArrayList>
</fx:Declarations>
<s:Panel  horizontalCenter="0" verticalCenter="0" width="316" height="383" title="拖拽演示:数据源--可拖入--容器1--可拖入---容器2">
<s:List x="10" y="30"  id="sco" width="103" height="301" dataProvider="{objs1}" dragMoveEnabled="true"  labelField="labelField" dragEnabled="true" dropEnabled="true"></s:List>
<s:Label x="10" y="10"   text="选择拖拽源" width="85" fontSize="13" color="#0C73D3"/>
<s:List x="142" y="30" id="op"   dataProvider="{objs2}"  mouseMove="drageIt(event)" labelField="labelField"  height="141" width="107"   dragEnabled="true" dropEnabled="true" dragMoveEnabled="true">
 
</s:List>
<s:Label x="145" y="10" text="容器1"/>
<s:Label x="145" y="184" text="容器2"/>
<s:DropDownList x="145" y="204"  dataProvider="{objs3}" labelField="labelField"    dragEnter="dragEnterHandler(event)"  dragDrop="dragdropHandler(event)"   ></s:DropDownList>
</s:Panel>
 
</s:Application>

注:FB4 本身许多控件已经集成拖拽属性,只需要开启下即可,如本例中 数据源 拖入 容器1。具体参见API或是FB4中提示

转自: http://blog.163.com/ltzx012@126/blog/static/872430842010523258882/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值