FLEX拖拽小例子不知道错在哪
如题,我在练习拖拽事件时遇到了问题。找不到原因为什么拖拽后接受容器不接收我的拖拽对象。请各位帮我看看我这段代码的问题好吗??我是菜菜鸟!谢谢各位了!
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:view="view.*"
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" xmlns:myImage="src.Images.*" creationComplete="initApp()">
<mx:Image x="269" y="220" source="FlexLogo.gif" id="img" width="72" height="23"/>
<mx:Canvas x="269" y="268" width="200" height="200" id="canvas_1" label="123">
</mx:Canvas>
<mx:Script>
<![CDATA[
import mx.core.DragSource;
import mx.core.IUIComponent;
import mx.events.DragEvent;
import mx.managers.DragManager;
internal function initApp():void
{
canvas_1.addEventListener(DragEvent.DRAG_ENTER,onEnter);
canvas_1.addEventListener(DragEvent.DRAG_OVER,overHandler);
img.addEventListener(MouseEvent.MOUSE_MOVE,doDrag);
}
internal function onEnter(evt:DragEvent):void
{
var enterTarget:IUIComponent = evt.target as IUIComponent;
DragManager.acceptDragDrop(enterTarget);
}
internal function doDrag(evt:MouseEvent):void
{
var dragTarget:IUIComponent = evt.currentTarget as IUIComponent;
var ds:DragSource = new DragSource();
var obj:Object= new Object();
obj.name="PIC.001";
ds.addData(obj,"PicName");
var dragImage:Image = new Image();
dragImage.source = "FlexLogo.gif";
dragImage.width=72;
dragImage.height=23;
DragManager.doDrag(dragTarget,ds,evt,dragImage,0,0,0.8,true);
}
internal function overHandler(evt:DragEvent):void
{
var newImg:Image = new Image();
newImg.source = "FlexLogo.gif";
canvas_1.addChild(newImg);
newImg.x=canvas_1.mouseX;
newImg.y=canvas_1.mouseY;
var obj:Object;
obj.name = evt.dragSource.dataForFormat("name");
newImg.toolTip = obj.name;
}
]]>
</mx:Script>
</mx:Application>