FLEX拖拽效果中的DragManager等关键词学习笔记

本文为学习:http://book.51cto.com/art/200906/130727.htm 时的笔记。

ADOBE的解释页面为:http://www.adobe.us/livedocs/flex/3_cn/langref/mx/managers/DragManager.html

另外,下面这个文章也很经典:http://www.7yue.com/post/64.html

 

1、首先要为要拖拽的对象设置 mouseDown 事件。如:

private static const FORMAT:String = "box2";           
   private function mouseDownHandler( evt:MouseEvent ):void{
    //var initiator:IUIComponent =evt.currentTarget as IUIComponent;
    var initiator:Box = evt.currentTarget as Box;
    var boxData:Object = new Object();
    boxData.width = initiator.width;boxData.height= initiator.height;boxData.backgroundColor = initiator.getStyle( "backgroundColor" );
    var dragSource:DragSource =new DragSource();
    dragSource.addData( boxData, FORMAT );      
    DragManager.doDrag( initiator, dragSource, evt );
   }

 

其中,FORMAT是为了以后在实现时找到这个dragSource 的途径。

 

2、为目标写:

private function dragEnterHandler(evt:DragEvent):void{
    if( evt.dragSource.hasFormat( FORMAT ) ){
     DragManager.acceptDragDrop( Canvas( evt.currentTarget ) );}
   }
   private function dragEnterHandler2(evt:DragEvent):void{
    
    DragManager.acceptDragDrop( Canvas( evt.currentTarget ) );
   }
   private function dropHandler( evt:DragEvent ):void{

//这里用到了 evt.dragSource.dataForFormat
    var boxData:Object = evt.dragSource.dataForFormat( FORMAT );
    var box:Box = new Box();
    box.width = boxData.width;box.height = boxData.height;box.setStyle( "backgroundColor", boxData.backgroundColor );
    box.x = evt.localX;box.y = evt.localY;canvas.addChild( box );
    

//下面是引用原控件的例子,用此方法是拖动,而不是提取原控件的一些信息
    var box3:Box = Box( evt.dragInitiator );
    box3.x = evt.localX+100;box3.y = evt.localY+100;
   }

 

 

 

二、LIST控件的拖拽

如用FLASH 4,则需要选用list (paged),这个就是原来FLEX的list。

dragMoveEnabled="true",是指选项从某个位置移动到另一个位置,如去掉此选项,则此项位置不动,另外又增加了一个选项。

dragEnabled="true" 允许拖 dropEnabled="true" 允许放

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值