宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]as3与BitmapData.draw()方法实例学习

2016-10-13 00:16:48 点击量:31 标签: 收藏本文

[AS3]as3与BitmapData.draw()方法实例

  1. package index.base.program{ 
  2.  
  3.     import flash.geom.Matrix; 
  4.     import flash.geom.Rectangle; 
  5.     import flash.display.BitmapData 
  6.     import flash.display.DisplayObject; 
  7.      
  8.     public function photography(photo:DisplayObject,transparent:Boolean = true,fillColor:uint = 0):BitmapData{ 
  9.         var tmpRect:Rectangle = photo.getRect(photo); 
  10.         var picture:BitmapData = new BitmapData(photo.width,photo.height,transparent,fillColor); 
  11.         picture.draw(photo,new Matrix(1,0,0,1,- tmpRect.left,- tmpRect.top)); 
  12.         return picture; 
  13.     } 

首先共享一个函数给大家,这个函数干的事情就是在DisplayObject中自动找出存在的图像区域,并且进行截图

然后讲解一下这个函数
首先取出photo照片的图像区域的矩形区域
然后创建BitmapData对象,前两个参数是创建的BD(BitmapData)图像的宽高,后两个分别是是否透明和填充颜色
(填 充颜色拿出来讲一下,在flash中标准的颜色表示方法是应该有8位的即0x11223344,11的位置指的是透明度,223344分别是rgb,因此 虽然设置第三个参数是透明,但是使用draw方法时,填充颜色默认属性是0xffffffff,即表示用纯白色填充,因此一样是不透明)
创建了BitmapData之后,我们可以使用draw方法了,draw有很多属性可以设置,这儿就不多说了,简单截图学习嘛。。先学会截图再说

然后函数返回picture对象,然后外面用

  1. var bmp:Bitmap = new Bitmap(photography(mc)); 
  2. addChild(bmp); 

这样我们就创建了一张简单的照片了~~并且学会了简单的截图功能~

扩展一下这个函数,可以设置出血现,自行研究多出来的怎么使用吧 [lol]

  1. package index.base.program{ 
  2.  
  3.     import flash.geom.Matrix; 
  4.     import flash.geom.Rectangle; 
  5.     import flash.display.BitmapData 
  6.     import flash.display.DisplayObject; 
  7.      
  8.     public function photography(photo:DisplayObject,fillColor:uint = 0,hemorrhage:Number = 0,transparent:Boolean = true):BitmapData{ 
  9.         var tmpRect:Rectangle = photo.getRect(photo); 
  10.         var picture:BitmapData = new BitmapData(photo.width + hemorrhage * 2,photo.height + hemorrhage * 2,transparent,fillColor); 
  11.         picture.draw(photo,new Matrix(1,0,0,1,- tmpRect.left + hemorrhage,- tmpRect.top + hemorrhage)); 
  12.         return picture; 
  13.     } 

 

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室