读书人

Flex4 截图封存到硬盘

发布时间: 2012-10-07 17:28:51 作者: rapoo

Flex4 截图保存到硬盘

<?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="655" height="512"> <fx:Declarations>  <!-- 将非可视元素(例如服务、值对象)放在此处 -->   </fx:Declarations> <fx:Script>  <![CDATA[   import flash.net.FileReference;      import mx.events.FlexEvent;   import mx.graphics.ImageSnapshot;   import mx.graphics.codec.JPEGEncoder;      private var bitmaps:IBitmapDrawable;   private var jietuWidth:Number;   private var jietuHeight:Number;   private var file:FileReference;   private var bit:BitmapData;      /**    *点击截图方法     */   protected function button1_clickHandler(event:MouseEvent):void   {    //显示另存为按钮    saveas.visible = true;    //获取选取得组件快照    bit = ImageSnapshot.captureBitmapData(bitmaps) as BitmapData;    //设置对应快照得宽高    jietu.width = jietuWidth;    jietu.height = jietuHeight;    //显示获取得快照    jietu.source = new Bitmap(bit);   }      /**    *点击另存为方法     */   protected function saveas_clickHandler(event:MouseEvent):void   {    //隐藏另存为按钮    saveas.visible = false;    //获取组件得快照    var imgData:ImageSnapshot = ImageSnapshot.captureImage(bitmaps,0);    //调用文件保存方法 保存生成得图片到硬盘    file.save(imgData.data,"image.png");   }      /**    *更换截图目标     */   private function onClick(event:Event):void   {    switch(event.target)    {     case beijietu1:      //更换获取快照得组件 为 beijietu1 组件      bitmaps = beijietu1;      //根据beijietu1组件的坐标宽高绘制外框线      drawKuang(beijietu1.x,beijietu1.y,beijietu1.width,beijietu1.height);      //设置显示快照的组件得宽高      jietuWidth = beijietu1.width;      jietuHeight = beijietu1.height;      break;     case beijietu2:      //更换获取快照得组件 为 beijietu2 组件      bitmaps = beijietu2;      //根据beijietu2组件的坐标宽高绘制外框线      drawKuang(beijietu2.x,beijietu2.y,beijietu2.width,beijietu2.height);      //设置显示快照的组件得宽高      jietuWidth = beijietu2.width;      jietuHeight = beijietu2.height;      break;    }   }   /**    *框住要截图得图片     */   private function drawKuang(kx:Number,ky:Number,kw:Number,kh:Number):void   {    //清除当前绘画内容    s.graphics.clear();    //设置绘画线条样式    s.graphics.lineStyle(1,0x00ff00,2);    //绘画圆角矩形    s.graphics.drawRoundRect(kx,ky,kw,kh,5,5);    //结束绘画填充    s.graphics.endFill();   }         protected function application1_creationCompleteHandler(event:FlexEvent):void   {    //默认获取beijietu1组件得快照    bitmaps = beijietu1;    //创建上传下载文件对象    file = new FileReference();   }  ]]> </fx:Script> <mx:Image source="@Embed('1.jpg')" id="beijietu1" x="21" y="26" click="onClick(event)" buttonMode="true"/> <mx:Image source="@Embed('2.jpg')" id="beijietu2" x="183" y="22" click="onClick(event)" buttonMode="true"/> <mx:Image id="jietu" x="21" y="237" width="151" height="104" /> <s:Button x="51" y="189" label="截图" click="button1_clickHandler(event)" buttonMode="true"/> <s:Button x="133" y="188" label="另存为" id="saveas" click="saveas_clickHandler(event)" visible="false"/> <s:SpriteVisualElement id="s"/></s:Application>
?

读书人网 >flex

热点推荐