拖拽图片到容器里

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
  3.     <mx:Script>
  4.         <![CDATA[
  5.             import mx.managers.DragManager;         
  6.             import mx.core.DragSource;
  7.             import mx.events.DragEvent;
  8.             
  9.             internal function initApp():void{
  10.                 img.addEventListener(MouseEvent.MOUSE_DOWN,dragHandler);
  11.                 
  12.                 canvas_1.addEventListener(DragEvent.DRAG_ENTER,enterHandler);
  13.                 canvas_1.addEventListener(DragEvent.DRAG_DROP,dropHandler);
  14.             }
  15.             internal function dragHandler(evt:MouseEvent):void{
  16.                 //拖拽的对象
  17.                 var dragTarget:Image=Image(evt.currentTarget);
  18.                 //创建拖拽数据源
  19.                 var ds:DragSource = new DragSource();   
  20.                 var obj:Object = new Object();
  21.                 obj.name = "Image"+Math.random()*100;
  22.                 ds.addData(obj,"image");
  23.                 //创建拖拽过程中显示的对象,可以是任意的组件
  24.                                 
  25.                 var imgProxy:Image = new Image();
  26.                 imgProxy.source = img.source;
  27.                 imgProxy.width = 72;
  28.                 imgProxy.height = 22;
  29.                 //开始拖拽
  30.                 DragManager.doDrag(dragTarget, ds, evt, imgProxy,0,0,0.8);
  31.                 //doDrag(谁启动拖动事件,拖动的数据源,当前的鼠标事件,拖动时的图标,偏移坐标x,偏移坐标y,透明度);
  32.             }
  33.             internal function enterHandler(evt:DragEvent):void
  34.                 //让canvas_1可以接收拖进来的事件
  35.                 DragManager.acceptDragDrop(Canvas(evt.target));
  36.             }
  37.             
  38.             internal function dropHandler(evt:DragEvent):void{
  39.                                         
  40.                 var newImg:Image = new Image();
  41.                 newImg.source = img.source;
  42.                 canvas_1.addChild(newImg);
  43.                 
  44.                 newImg.x = canvas_1.mouseX;
  45.                 newImg.y = canvas_1.mouseY;
  46.                 
  47.                 trace(evt.dragSource.hasFormat("image"));
  48.                 
  49.                 if(evt.dragSource.hasFormat("image")){
  50.                     var obj:Object = evt.dragSource.dataForFormat("image");
  51.                     newImg.toolTip = obj.name;
  52.                 }
  53.             }
  54.         ]]>
  55.     </mx:Script>
  56.     <mx:Canvas id="canvas_1" styleName="box" x="50" y="150" width="265" height="231"  
  57.         cornerRadius="20" borderColor="#A3ADB5" borderStyle="inset" alpha="1.0" backgroundColor="#463F3F">
  58.     </mx:Canvas>
  59.     <mx:Image id="img" x="51" y="97" source="FlexLogo.gif"/>
  60. </mx:Application>

 

记得承载的容器需要有底色啊.....................

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值