第一个实例:
<?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>
很诡异的问题,有时间再测试下。