·您当前的位置:主页 > 技术教程 > Flex技术 >

[Flex]Flex截图功能的实现与代码实例

时间:2013-02-18 09:14csdn.net
[Flex]Flex截图功能的实现与代码实例,在flex中也经常会用到截图功能,并且将截图的图片保存至本地。一想到图片那么我们就自然想到他的存在形式 bitmap byteArray.所以自然就会联系到bitmap类上去

  在flex中也经常会用到截图功能,并且将截图的图片保存至本地。一想到图片那么我们就自然想到他的存在形式 bitmap byteArray.所以自然就会联系到bitmap类上去。

  下面让我们一起来看看都有哪些方法吧。

  方法一:按我们自然的思路实现:

在application中有两个容器:

  1. <mx:Canvas id="virtour_cav" top="0" bottom="0" left="0" right="0"> 
  2. </mx:Canvas> 
  3. <mx:Canvas right="0" top="0" width="200" height="200"> 
  4.     <mx:Image id="cpImg" left="0" right="0" bottom="0" top="0"/> 
  5. </mx:Canvas> 

  当我们点击截图时执行

  1. private function CaptureImage():void{  
  2.              var bd:BitmapData=getBitmapData(UIComponent(virtour_cav));  
  3.              cpImg.sourcenew Bitmap(bd);  
  4.  
  5. }  
  6. private function getBitmapData(target:UIComponent):BitmapData{  
  7.          var bd:BitmapDatanew BitmapData(target.width,target.height);  
  8.            
  9.          var m:Matrix=new Matrix();  
  10.          bd.draw(target,m);  
  11.          return bd;  

  最后使用FileReference.save()方法保存就可以。

  fileReference.save(new Bitmap(bd),"CuPlayer_com.jpg");

  方法二:直接使用图片截图类ImageSnapshot实现

  这个就更简单了。

  1. private var jpgeEnc:JPEGEncoder=new JPEGEncoder();  
  2. private var fileReference:FileReference=new FileReference();  
  3. private function CaptureImage():void{  
  4.              var imgSnapshot:ImageSnapshot=ImageSnapshot.captureImage(virtour_cav,0,jpgeEnc);  
  5.              fileReference.save(imgSnapshot.data,"cuplayer_com.jpg");  

  但是这两个方法实现的前提是flash 播放器要求是10以上

  如果我们要用一些 flash player 10 上才提供的功能时,需要在项目属性里设置一下,否则会找不到此方法,比如flash保存文件或图片到本地的方法:FileReference .save()。

  flex builder3 默认要求flash player 最低要9,需要改成10.0,修改方法如下:

  右键点击项目,在项目属性中找 flex compile, 修改 html wrapper,把9。0。24改为10.0.0

热门文章推荐

请稍候...