[zt]Flex 3: 构建高级用户界面 添加拖放支持1

在典型的可视化开发环境中,你能够在应用程序中选中并且拖动一个对象在屏幕中来回移动。  Flex Drag and Drop管理器能够让用户选中一个对象,比如List控件的一个元素,或者一个控件比如Image控件,并且拖动他们跨过一个元素,放到另一个元素中。所有的Flex组件支持拖放操作。Flex在拖放方面对一些控件,比如List,Tree和DataGrid,都有额外的功能支持。

拖放操作主要有3个阶段:开始,拖动中,放下中。

开始阶段

用户通过使用鼠标选中一个组件,或组件中的元素,然后按住鼠标移动组件或元素移动,来发起一个拖放操作。例如,用户用鼠标选择一个List控件的元素,然后按住鼠标左键移动几个像素。这个被选择的组件就叫做“拖动开始点”(drag initiator)。

拖动阶段

当按住鼠标按键,用户在Flex应用程序中移动鼠标。Flex显示一个表示正在拖放的图片,这个图片代表拖放对象,就叫做“拖动代理”。DragSource对象包含被拖动的对象。

放下阶段

当一个用户移动“拖动代理”划过一个Flex组件的时候,这个组件就有可能变成“放下目标”。“放下目标”可以检查“拖动源”,然后决定这个数据是否是一个“放下目标”(drop target)可以接受的格式,如果是,则允许用户把数据放到它的上边。如果不是,那么就不允许放到它上边。

在一个成功的放下操作中,Flex轻易的就可以增加数据到目标中,并且把原数据删除。


在本快速入门中,介绍了在Flex中几种实现拖放操作的方式

使用列表控件拖放
手工增加拖放功能
使用列表控件拖放
几个Flex组件具有支持内置拖放操作功能。他们是DataGrid, HorizontalList, List, Menu, PrintDataGrid, TileList, and Tree 控件.

通过设置dragEnabled属性为true,可以使这些控件作为“拖动开始点”。类似地,通过设置dropEnabled属性为true,可以使这些控件作为“放下目标”。Flex允许通过拖动来移动元素,从dragEnabled控件到一个dropEnabled控件,或者在拖动中按住Control键可以赋值他们。

通过拖放操作复制元素

下边的例子允许你通过拖放,从一个List控件中复制元素到另一个List控件中。你可以多次赋值同一个元素,从“拖动开始点”到“放下目标”。


    xmlns:mx=" http://www.adobe.com/2006/mxml"
    width="365" height="225"
    creationComplete="creationCompleteHandler();"
>

   
                        private function creationCompleteHandler():void
                {

                    srclist.dataProvider = ['Reading', 'Skating', 'Movies'];       
                    destlist.dataProvider = [];
                }

        ]]>
   

   
       

           

           
           
                id="srclist" width="100%" height="100"
                allowMultipleSelection="true"               
                dragEnabled="true"

            />

       

       
           

           
           
                id="destlist" width="100%" height="100"
                dropEnabled="true"

            />

       
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值