简单截图

package index.base.program{

  import flash.geom.Matrix;
  import flash.geom.Rectangle;
  import flash.display.BitmapData
  import flash.display.DisplayObject;
  
  public function photography(photo:DisplayObject,transparent:Boolean = true,fillColor:uint = 0):BitmapData{
    var tmpRect:Rectangle = photo.getRect(photo);
    var picture:BitmapData = new BitmapData(photo.width,photo.height,transparent,fillColor);
    picture.draw(photo,new Matrix(1,0,0,1,- tmpRect.left,- tmpRect.top));
    return picture;
  }
}

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

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

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

var bmp:Bitmap = new Bitmap(photography(mc));
addChild(bmp);
这样我们就创建了一张简单的照片了~~并且学会了简单的截图功能~

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

 

package index.base.program{

  import flash.geom.Matrix;
  import flash.geom.Rectangle;
  import flash.display.BitmapData
  import flash.display.DisplayObject;
  
  public function photography(photo:DisplayObject,fillColor:uint = 0,hemorrhage:Number = 0,transparent:Boolean = true):BitmapData{
    var tmpRect:Rectangle = photo.getRect(photo);
    var picture:BitmapData = new BitmapData(photo.width + hemorrhage * 2,photo.height + hemorrhage * 2,transparent,fillColor);
    picture.draw(photo,new Matrix(1,0,0,1,- tmpRect.left + hemorrhage,- tmpRect.top + hemorrhage));
    return picture;
  }
}

 

 

http://www.xiaos8.com/article.asp?id=35

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值