手机版

Flex屏幕快照和显示实现代码

时间:2021-10-25 来源:互联网 编辑:宝哥软件园 浏览:

1.拍摄指定图片的快照和截图。在Flex SDK的flash.display包下有两个类Bitmap和BitmapData。在flex中,您可以通过两个类来操作图片。BitmapData类中有一个draw方法。此方法的第一个参数是屏幕捕获的源对象。这个对象必须实现IBitmapDrawable接口。DisplayObject类实现了这个接口,DisplayObject是所有可见控件的祖先类,这意味着flex中所有可以看到的图片和控件都可以通过drawing方法来拍摄。具体代码如下:复制代码如下:私有var BMP图像:位图=nullPrivate函数onclick(): void {//创建与截图对象var相同大小的图片BMP数据: bitmapdata=new bitmapdata(来源。宽度,来源。高度);//拍快照,其中第二个参数Matrix用来变换图片,比如旋转、缩放。//如果图片不需要变换,可以使用新的Matrix()或者null。bmpData.draw(来源,新Matrix());//创建位图对象bmpImage=新位图(bmpData);} BitmapData对象不能直接显示在屏幕上,因此需要将BitmapData对象封装成Bitmap。按下截图按钮后,生成面板的快照,并保存在位图对象中。效果图:效果图A

其次,在屏幕上显示捕获的截图。下一步是在屏幕上显示位图对象,这需要UIComponent类。由于Bitmap对象直接添加到Canvas等容器中,运行时会出现错误,因为容器中添加的子对象必须是UIComponent的子类,而Bitmap不是,所以需要UIComponent类封装一层。然后将UIComponent对象添加到Canvas容器中,图片就会显示出来。代码如下:复制代码如下:show()上的:私有函数: void {//创建一个UIComponent对象var UIC 3360 ui component=new ui component();//将位图对象添加到UIComponent对象UIC . addchild(bmpImage);//将UIComponent对象添加到Canvas showimage . addchild(UIC);}先按截图按钮进行截图操作,再按显示按钮在Canvas中显示截图。效果如图所示。效果图B

三、以下是这个程序的完整代码:复制代码代码如下:可扩展标记语言版本='1.0 '编码='utf-8 '?MX : APPLication xmlns : MX=' http://www .土坯房。com/2006/mxml ' layout=' absolute ' font family='宋体font size=' 12 ' width=' 831 ' height=' 448 ' MX : panel id=' source ' x=' 26 ' y=' 77 ' width=' 320 ' height=' 263 '布局=' absolute ' MX : textinput x=' 91 ' y=' 51 '/MX : textinput x=' 91 ' y=' 106 /MX 3360按钮x=' 73.5 ' y=' 110 '取消/mx:Button x='172.5' y='158 '标签='确定/MX :标签x='32' y='53 '文本='用户名:'/MX :标签x='32' y='108 '文本='密码:'/MX :标签x='109' y='10 '文本='用户登录font weight=' bold '/MX : panel MX : canvas id=' show image ' x=' 427 ' y=' 58 ' width=' 347 ' height=' 292 '/MX : canvas MX 3360 label x=' 124 ' y=' 32 ' text='截图区域/MX :标签x='562' y='32 '文本='截图显示区域/mx:Button x='147' y='394 '标签='截图单击=' onClick()'/MX :按钮x=' 548 ' y=' 394 '标签='显示单击=' OnShaw()'/MX :脚本! - [CDATA[导入MX。核心。uicomponentprivate var bmpimage :位图=null私有函数onClick():void { //创建一个大小和截图对象一致的图片var BMP data : BitmapData=new BitmapData(来源。宽度,来源。高度);//进行快照截图,其中第二个参数[数]矩阵是对图片进行变换用的,例如旋转缩放等。 //如果图片不需要变换可以用新矩阵()或者空都可以。bmpData.draw(来源,新matrix());//创建位图对象bmpImage=新位图(BMPdata);}私有函数OnShaw(): void {//创建一个组件对象var UIC : ui组件=新ui组件();//将位图对象加入到组件对象中UIC。add child(BMPimage);//将组件对象加入帆布中展示形象。阿德奇尔德(UIC);}]]-/MX :脚本/MX :应用程序四、总结。虽然可以用位图和位图数据类进行截图和现实,但是弯曲不能直接读写文件。图片的保存还需要后台程序的配合来完成。

版权声明:Flex屏幕快照和显示实现代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。