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