对DragEvent.DRAG_ENTER事件侦听得到不同的结果

第一个实例:

 

<?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>

 

很诡异的问题,有时间再测试下。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值