flex 拖动效果(影子效果)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
	<![CDATA[
		import mx.graphics.ImageSnapshot;
		import mx.controls.Image;
		import mx.core.UIComponent;
	
		public var uiComponent:Object;
		public var targetImage:Image;
		public var Ax:int = 0;
		public var Ay:int = 0;
		public function mouseDown(event:MouseEvent):void{
			//在原地生成图片副本,然后将移动图片。
			this.uiComponent = event.currentTarget;
			//生成图片
			 var bd:BitmapData = ImageSnapshot.captureBitmapData( UIComponent( uiComponent ) );
    		 targetImage = new Image(); 
    		 targetImage.source = new Bitmap(bd);
    		 targetImage.x = uiComponent.x;
    		 targetImage.y = uiComponent.y;
    		 Ax = event.localX;
    		 Ay = event.localY;
    		 this.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);
    		 this.addEventListener(MouseEvent.MOUSE_UP, mouseUp);
    		 this.addChild(targetImage);
		}
		
		public function mouseMove(event:MouseEvent):void{
			targetImage.x = event.stageX-Ax;
			targetImage.y = event.stageY-Ay;
		}
		
		public function mouseUp(event:MouseEvent):void{
			this.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove);
    		this.removeEventListener(MouseEvent.MOUSE_UP, mouseUp);
    		 
			//当鼠标移动到预定位置,将图片删除,并且移动源控件。
			uiComponent.x = event.stageX-Ax;
			uiComponent.y = event.stageY-Ay;
			this.removeChild(targetImage);
			targetImage = null;
			
		}
		
		
	]]>
</mx:Script>
	<mx:Label mouseDown="mouseDown(event)" x="48" y="29" width="278" height="149" text="asdasdasdasd "/>
</mx:Application>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值