[Flex]Flex截图功能的实现与代码实例
在flex中也经常会用到截图功能,并且将截图的图片保存至本地。一想到图片那么我们就自然想到他的存在形式 bitmap byteArray.所以自然就会联系到bitmap类上去。
下面让我们一起来看看都有哪些方法吧。
方法一:按我们自然的思路实现:
在application中有两个容器:
- <mx:Canvas id="virtour_cav" top="0" bottom="0" left="0" right="0">
- </mx:Canvas>
- <mx:Canvas right="0" top="0" width="200" height="200">
- <mx:Image id="cpImg" left="0" right="0" bottom="0" top="0"/>
- </mx:Canvas>
当我们点击截图时执行
- private function CaptureImage():void{
- var bd:BitmapData=getBitmapData(UIComponent(virtour_cav));
- cpImg.source= new Bitmap(bd);
- }
- private function getBitmapData(target:UIComponent):BitmapData{
- var bd:BitmapData= new BitmapData(target.width,target.height);
- var m:Matrix=new Matrix();
- bd.draw(target,m);
- return bd;
- }
最后使用FileReference.save()方法保存就可以。
fileReference.save(new Bitmap(bd),"CuPlayer_com.jpg");
方法二:直接使用图片截图类ImageSnapshot实现
这个就更简单了。
- private var jpgeEnc:JPEGEncoder=new JPEGEncoder();
- private var fileReference:FileReference=new FileReference();
- private function CaptureImage():void{
- var imgSnapshot:ImageSnapshot=ImageSnapshot.captureImage(virtour_cav,0,jpgeEnc);
- 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
热门文章推荐
- [flex]flex视频监控分区多屏播放器源代码
- [FLEX]Flex4制作Flv视频播放器
- [Flex]flex做的加载进度条loading源代码实例
- [Flex]浏览器chromeFlash安全沙箱有冲突错误的解决办法
- [Flex]as3.0检测当前摄像头状态(占用,没有,正常)三种状态
- [Flex]Flex截图功能的实现与代码实例
- [Flex]使用控件MenuBar添加一个菜单 在子菜单点击时执行事件
- [Flex]Flex数组的使用及定义方法中使用可变参数代码示例