- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
- <mx:Script>
- <![CDATA[
- import mx.managers.DragManager;
- import mx.core.DragSource;
- import mx.events.DragEvent;
- internal function initApp():void{
- img.addEventListener(MouseEvent.MOUSE_DOWN,dragHandler);
- canvas_1.addEventListener(DragEvent.DRAG_ENTER,enterHandler);
- canvas_1.addEventListener(DragEvent.DRAG_DROP,dropHandler);
- }
- internal function dragHandler(evt:MouseEvent):void{
- //拖拽的对象
- var dragTarget:Image=Image(evt.currentTarget);
- //创建拖拽数据源
- var ds:DragSource = new DragSource();
- var obj:Object = new Object();
- obj.name = "Image"+Math.random()*100;
- ds.addData(obj,"image");
- //创建拖拽过程中显示的对象,可以是任意的组件
- var imgProxy:Image = new Image();
- imgProxy.source = img.source;
- imgProxy.width = 72;
- imgProxy.height = 22;
- //开始拖拽
- DragManager.doDrag(dragTarget, ds, evt, imgProxy,0,0,0.8);
- //doDrag(谁启动拖动事件,拖动的数据源,当前的鼠标事件,拖动时的图标,偏移坐标x,偏移坐标y,透明度);
- }
- internal function enterHandler(evt:DragEvent):void{
- //让canvas_1可以接收拖进来的事件
- DragManager.acceptDragDrop(Canvas(evt.target));
- }
- internal function dropHandler(evt:DragEvent):void{
- var newImg:Image = new Image();
- newImg.source = img.source;
- canvas_1.addChild(newImg);
- newImg.x = canvas_1.mouseX;
- newImg.y = canvas_1.mouseY;
- trace(evt.dragSource.hasFormat("image"));
- if(evt.dragSource.hasFormat("image")){
- var obj:Object = evt.dragSource.dataForFormat("image");
- newImg.toolTip = obj.name;
- }
- }
- ]]>
- </mx:Script>
- <mx:Canvas id="canvas_1" styleName="box" x="50" y="150" width="265" height="231"
- cornerRadius="20" borderColor="#A3ADB5" borderStyle="inset" alpha="1.0" backgroundColor="#463F3F">
- </mx:Canvas>
- <mx:Image id="img" x="51" y="97" source="FlexLogo.gif"/>
- </mx:Application>
记得承载的容器需要有底色啊.....................