- <?xml version="1.0" encoding="utf-8"?>?
- <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"??
- ????? xmlns:s="library://ns.adobe.com/flex/spark"??
- ????? xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"?
- ????? creationComplete="application1_creationCompleteHandler(event)" width="660" height="800">?
- <fx:Declarations>?
- ? ?
- ???
- </fx:Declarations>?
- <fx:Script>?
- ? <![CDATA[
- ?? import flash.net.FileReference;
- ??
- ?? import mx.events.FlexEvent;
-
?? import mx.graphics.ImageSnapshot;
-
?? import mx.graphics.codec.JPEGEncoder;
- ??
-
?? import spark.events.IndexChangeEvent;
- ??
- ?? private var file:FileReference;
- ?? private var ImageArray:Array;
- ?? private var bitMapArray:Array;
-
?? private var currentMoveImage:Image;
- ?? private var dx:Number;
- ?? private var dy:Number;
- ?? private var qyX:Number = 10;
- ?? private var qyY:Number = 210;
-
?? private var qyWidth:Number = 640;
-
?? private var qyHeight:Number = 400;
-
?? private var bitmapdata:BitmapData;
- ??
- ?? [Embed(source='1.gif')]
- ?? private var gif1:Class;
- ??
- ?? [Embed(source='2.gif')]
- ?? private var gif2:Class;
- ??
- ?? [Embed(source='3.gif')]
- ?? private var gif3:Class;
- ??
- ?? [Embed(source='4.gif')]
- ?? private var gif4:Class;
- ??
- ?? [Embed(source='5.gif')]
- ?? private var gif5:Class;
- ??
- ?? [Embed(source='6.gif')]
- ?? private var gif6:Class;
- ??
- ?? [Embed(source='7.gif')]
- ?? private var gif7:Class;
- ??
- ?? [Embed(source='8.gif')]
- ?? private var gif8:Class;
- ??
- ?? [Embed(source='9.gif')]
- ?? private var gif9:Class;
- ??
- ?? [Embed(source='10.gif')]
- ?? private var gif10:Class;
- ??
-
?? [Bindable]private var imgArray:Array = [
- ??? {imgSource:gif1},
- ??? {imgSource:gif2},
- ??? {imgSource:gif3},
- ??? {imgSource:gif4},
- ??? {imgSource:gif5},
- ??? {imgSource:gif6},
- ??? {imgSource:gif7},
- ??? {imgSource:gif8},
- ??? {imgSource:gif9},
- ??? {imgSource:gif10}
- ?????????????? ]
- ??
- ??
- ?? /**
- ??? *点击另存为方法
- ??? */
- ?? protected function saveas_clickHandler(event:MouseEvent):void
- ?? {
- ??? bitmapdata = new BitmapData(qyWidth,qyHeight);
- ??? var l:int = bitMapArray.length;
- ??? for(var i:int = 0;i<l;i++)
- ??? {
-
???? var bit:Bitmap = bitMapArray[i];
-
???? currentMoveImage = ImageArray[i];
- ???? var bitdata:BitmapData = bit.bitmapData;
- ???? var rect:Rectangle = new Rectangle(0,currentMoveImage.width,currentMoveImage.height);
- ???? var point:Point = new Point(currentMoveImage.x-qyX,currentMoveImage.y-qyY);
- ???? bitmapdata.copyPixels(bitdata,rect,point);
- ??? }
- ??? saveImg.source = new Bitmap(bitmapdata);
-
??? var timer:Timer = new Timer(10,1);
- ??? timer.addEventListener(TimerEvent.TIMER_COMPLETE,onTimerComplete);
- ??? timer.start();
- ?? }
- ??
- ?? /**
- ??? *延时10毫秒等待数据加载完
- ??? */
- ?? private function onTimerComplete(event:TimerEvent):void
- ?? {
- ??? var imgData:ImageSnapshot = ImageSnapshot.captureImage(saveImg,0);
-
??? file.save(imgData.data,"image.png");
- ?? }
- ??
- ?? /**
- ??? *点击清除
- ??? */
- ?? private function clearImg(event:MouseEvent):void
- ?? {
- ??? for(var i:int = 0;i<ImageArray.length;i++)
- ??? {
-
???? this.removeElement(ImageArray[i]);
- ??? }
- ??? ImageArray = [];
- ??? bitMapArray = [];
- ?? }
- ??
- ?? private function onChange(event:IndexChangeEvent):void
- ?? {
-
??? var obj:Object = list.selectedItem;
-
??? var bit:Bitmap = new obj.imgSource();
- ??? bitMapArray.push(bit);
- ??? var img:Image = new Image();
- ??? img.source = obj.imgSource;
- ??? img.y = 220;
- ??? img.x = 20;
- ??? img.buttonMode = true;
- ??? img.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
- ??? ImageArray.push(img);
- ??? this.addElement(img);
- ??? list.selectedIndex = -1;
- ?? }
- ?? /**
- ??? *鼠标按下
- ??? */
- ?? private function onDown(event:MouseEvent):void
- ?? {
- ??? currentMoveImage = event.target as Image;
-
??? dx = mouseX - currentMoveImage.x;
-
??? dy = mouseY - currentMoveImage.y;
- ??? this.stage.addEventListener(MouseEvent.MOUSE_MOVE,onMove);
- ??? this.stage.addEventListener(MouseEvent.MOUSE_UP,onUp);
- ?? }
- ?? /**
- ??? *鼠标移动实现图片拖动
- ??? */
- ?? private function onMove(event:MouseEvent):void
- ?? {
- ??? currentMoveImage.x = mouseX-dx;
- ??? currentMoveImage.y = mouseY-dy;
- ??? if(currentMoveImage.x<qyX){
- ???? currentMoveImage.x = qyX+1;
- ??? }
- ??? if(currentMoveImage.x+currentMoveImage.width>qyWidth+qyX){
- ???? currentMoveImage.x = qyWidth+qyX-1-currentMoveImage.width;
- ??? }
- ??? if(currentMoveImage.y<qyY){
- ???? currentMoveImage.y = qyY+1;
- ??? }
- ??? if(currentMoveImage.y+currentMoveImage.height>(qyHeight+qyY)){
- ???? currentMoveImage.y = qyHeight+qyY-1-currentMoveImage.height;
- ??? }
- ?? }
- ?? /**
- ??? *鼠标抬起移除事件
- ??? */
- ?? private function onUp(event:MouseEvent):void
- ?? {
- ??? this.stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);
- ??? this.stage.removeEventListener(MouseEvent.MOUSE_UP,onUp);
- ??? currentMoveImage = null;
- ?? }
- ?? protected function application1_creationCompleteHandler(event:FlexEvent):void
- ?? {
- ??? //创建上传下载文件对象
- ??? file = new FileReference();
- ??? //实例化数组 盛放创建完得图片
- ??? ImageArray = new Array();
- ??? bitMapArray = new Array();
- ???
- ??? saveImg.width = qyWidth;
- ??? saveImg.height = qyHeight;
-
??? k.graphics.lineStyle(1,0x222222,1);
- ??? k.graphics.drawRect(qyX,qyY,qyWidth,qyHeight);
- ??? k.graphics.endFill();
- ?? }
- ? ]]>?
- </fx:Script>?
- <s:Label x="23" y="10" text="请选择图片进行拼图" height="23" color="#F70606" fontFamily="宋体" fontSize="15"/>?
- <s:List x="23" y="30" width="611" itemRenderer="imgRender" height="158" id="list" change="onChange(event)">?
- ? <s:layout>?
- ?? <s:HorizontalLayout/>?
- ? </s:layout>?
- ? <s:dataProvider>?
- ?? <s:ArrayCollection source="{imgArray}"/>?
- ? </s:dataProvider>?
- </s:List>?
- <s:Button x="11" y="653" label="另存为" id="saveas" click="saveas_clickHandler(event)" visible="true"/>?
- <mx:Image id="saveImg" visible="false"/>?
- <s:SpriteVisualElement id="k"/>?
- <s:Button x="104" y="653" label="清除" click="clearImg(event)"/>?
- </s:Application>?
?
?
zhuan zi :http://632408004.iteye.com/blog/940881
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|