Flex画面快照截图及显示又一方式

 前几天我写了一篇文章叫做“Flex画面快照截图及显示”,在里面介绍了对Flex程序的运行界面进行截图快照。今天我介绍Flex中另外一种截图方式,这种方式更为简单。其方法是使用Flex中自带的ImageSnapshot类来实现。但是这种方式仅限于Flex3以及更高版本,在Flex2种,是没有这个类的。
一.ImageSnapshot类说明
这个类位于mx.graphics包中,提供了一个非常实用的静态函数captureBitmapData函数
这个函数的第一个参数为source:IBitmapDrawable 也就是说,所有可视控件都可以作为这个函数的参数。其他参数都有默认值,如果需要的话可以进行设置。返回值是BitmapData类型的。可以直接获得作为参数传入的控件的截图。
二.ImageSnapshot的使用例子。
下面是一个ImageSnapshot类直接调用captureBitmapData函数获得画面截图的使用例子。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <!--[CDATA[ import mx.graphics.ImageSnapshot; private function test():void { var bmp:BitmapData = ImageSnapshot.captureBitmapData(panel); img.source = new Bitmap(bmp); } ]]--> </mx:Script> <mx:Image id="img" x="73" y="260" width="531" height="220"/> <mx:Button x="73" y="488" label="截图" click="test()"/> <mx:Panel id="panel" x="73" y="34" width="456" height="218" layout="absolute"> <mx:DataGrid id="dg" x="10" y="10"> <mx:columns> <mx:DataGridColumn headerText="Column 1" dataField="col1"/> <mx:DataGridColumn headerText="Column 2" dataField="col2"/> <mx:DataGridColumn headerText="Column 3" dataField="col3"/> </mx:columns> </mx:DataGrid> </mx:Panel> </mx:Application>

运行效果图:

Flex画面快照截图及显示又一方式_第1张图片

点击“截图”按钮进行画面捕捉,并且把捕获的图片显示到Image中。

 

你可能感兴趣的:(datagrid,image,Flex,layout,application,encoding)