第一个实例:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.Image;
import mx.core.UIComponent;
import mx.core.DragSource;
import mx.events.DragEvent;
import mx.managers.DragManager;
private function init():void
{
canvas.addEventListener(DragEvent.DRAG_ENTER,dragEnterHandler);
}
private function dragEnterHandler(event:DragEvent):void
{
//if(event.dragSource.hasFormat("box"))
{
trace(event.dragSource.hasFormat("box"),"11111") //执行了很多次
DragManager.acceptDragDrop(event.dragInitiator as UIComponent);
}
}
private function dropHandler(event:DragEvent):void
{
trace(event.dragSource.hasFormat("box"))
}
private function downHandler(event:MouseEvent):void
{
var box:Image = event.currentTarget as Image;
var ds:DragSource = new DragSource();
var obj:Object = new Object();
obj.name = "japja";
DragManager.doDrag(box,ds,event);
}
]]>
</mx:Script>
<mx:Canvas id="canvas" backgroundColor="0xeeeeee" width="300" height="300"
dragDrop="dropHandler(event)">
<!--<mx:Box id="dragItem" width="20" height="20" backgroundColor="0x00ffcc"
mouseDown="downHandler(event)"/>-->
<mx:Image source="images/1.jpg" mouseDown="downHandler(event)"/>
</mx:Canvas>
</mx:Application>
第二个实例:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.core.DragSource;
import mx.events.DragEvent;
import mx.controls.Image;
import mx.managers.DragManager;
private function init():void
{
cav1.addEventListener(DragEvent.DRAG_DROP,dropHandler);
cav1.addEventListener(DragEvent.DRAG_ENTER,enterHandler);
}
private function dropHandler(event:DragEvent):void
{
if(event.dragSource.hasFormat("yao"))
{
var img:Image = new Image();
trace(event.dragInitiator)
img.source = (event.dragInitiator as Image).source;
img.x = event.localX;
img.y = event.localY;
cav1.addChild(img);
}
}
private function enterHandler(event:DragEvent):void
{
trace("enter") //只执行了一次!
DragManager.acceptDragDrop(event.currentTarget as UIComponent);
}
private function downHandler(event:MouseEvent):void
{
if(event.currentTarget is Image)
{
var img:Image = new Image();
img.source = event.target;
trace(event.currentTarget)
var img:Image = event.currentTarget as Image;
var ds:DragSource = new DragSource();
var obj:Object = new Object();
ds.addData(obj,"yao");
DragManager.doDrag(img,ds,event);
}
}
]]>
</mx:Script>
<mx:Canvas id="cav1" width="600" height="100" mouseDown="downHandler" backgroundColor="0xffff00" x="400" y="100">
<mx:Image source="images/1.jpg" mouseDown="downHandler(event)"/>
</mx:Canvas>
<mx:Canvas id="cav2" width="600" height="100" backgroundColor="0xff00" x="400" y="300"/>
</mx:Application>
很诡异的问题,有时间再测试下。