读书人

Flex 怎么复制一个控件

发布时间: 2012-09-23 10:28:11 作者: rapoo

Flex 如何复制一个控件。
我要做一个拖动的效果。想要复制个控件,怎么完全复制啊。。不然就成了移动!那个ObjectUtil.copy()好像不行诶!

[解决办法]
这有一个例子,就是你那种效果,自己看下吧

C# code
<?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="我可以拖动"/></mx:Application> 

读书人网 >flex

热点推荐