flex 拖拽

1. import mx.controls.Button;
2. import mx.controls.TextArea;
3. import mx.core.BitmapAsset;
4. import mx.core.DragSource;
5.
6. import mx.managers.DragManager;
7. import mx.events.DragEvent;
8.
9. private const FORMAT:String = "format";
10.
11. private function onMouseDown( event:MouseEvent ):void
12. {
13. // 下面这个是要进行拖放的元件
14. var dragInitiator:Button = event.currentTarget as Button;
15.
16. // 使用 dragSource 来装载数据
17. // 第一个参数就是需要传递的数据, Object类型, 可以是任何数据, 这里是字符串数据
18. // 第二个参数是一个标识符, 标识这个数据, 指示特定的元件才能接收这个数据
19. var dragSource:DragSource = new DragSource();
20. dragSource.addData( dragInitiator.label, FORMAT );
21.
22. // 拖动时显示的图像, 如果不定义这个, 默认是一个与拖放元件等大的纯色方块
23. var dragImg:BitmapAsset = new BitmapAsset();
24. dragImg.bitmapData = new BitmapData( dragInitiator.width, dragInitiator.height );
25. dragImg.bitmapData.draw( dragInitiator );
26.
27. // 以下参数分别是: 拖放元件, 拖放数据, 触发拖放的鼠标事件, 拖动时显示的图像, x轴偏移量, y轴偏移量, 透明度
28. DragManager.doDrag( dragInitiator, dragSource, event, dragImg, 0, 0, 0.5 );
29. }
30.
31. private function onDragEnter( event:DragEvent ):void
32. {
33. if( event.dragSource.hasFormat( FORMAT ) )
34. {
35. DragManager.acceptDragDrop( event.target as TextArea );
36. }
37. }
38.
39. private function onDragDrop( event:DragEvent ):void
40. {
41. // 寻找 FORMAT 指定的数据
42. var text:String = event.dragSource.dataForFormat( FORMAT ).toString() + "\n";
43.
44. var textArea:TextArea = event.target as TextArea;
45. textArea.text += text;
46. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值