·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0强大的绘制对象BitmapData.draw

时间:2013-12-16 09:06cuplayer.com
[AS3]as3.0强大的绘制对象BitmapData.draw,source:IBitmapDrawable — 要绘制到 BitmapData 对象的显示对象或 BitmapData 对象。

参数详解:

source:IBitmapDrawable — 要绘制到 BitmapData 对象的显示对象或 BitmapData 对象。(DisplayObject 和 BitmapData 类实现 IBitmapDrawable 接口。)

matrix:Matrix (default = null) — 一个 Matrix 对象,用于缩放、扭转位图或转换位图的坐标。若是不想将矩阵转换应用于图像,请将此参数设置为恒等矩阵(应用默认 new Matrix() 机关函数创建),或传递 null 值。

colorTransform:ColorTransform (default = null) — 一个 ColorTransform 对象,用于调剂位图的色彩值。若是没有供给任何对象,则不会转换位图图像的色彩。若是必须传递此参数但又不想转换图像,请将此参数设置为应用默认 new ColorTransform() 机关函数创建的 ColorTransform 对象。

blendMode:String (default = null) — 来自 flash.display.BlendMode 类的一个字符串值,指定要应用于所生成位图的混淆模式。

clipRect:Rectangle (default = null) — 一个 Rectangle 对象,定义要绘制的源对象的区域。若是不供给此值,则不会进行剪裁,并且将绘制全部源对象。

smoothing:Boolean (default = false) — 一个布尔值,用于断定因在 matrix 参数中指定缩放或扭转而对 BitmapData 对象进行缩放或扭转今后,是否对该对象进行腻滑处理惩罚。smoothing 参数只有在 source 参数是 BitmapData 对象时才实用。在将 smoothing 设置为 false 的景象下,经过扭转或缩放的 BitmapData 图像可能会显得像素化或带有锯齿。

 

* 里面有两个参数matrix和clipRect和copyPixel中的destPoint、sourceRect很像,但用法倒是天差地别。

copyPixel可以指定绘制的区域以及绘制到目标位图的地位,draw也可以,但却须要重视参数的用法和copyPixel是不合的。

matrix是矩阵转换,可以进行位移,扭转,缩放操纵,然则然则,重视,这个操纵都是对源位图进行操纵,并非是目标位图上的操纵,而clipRect也是指源位图上的区域。

所以matrix和clipRect这两上参数的含义是:源位图经过矩形转换后,再从源位图上拷贝clipRect指定的区域,到目标位图上的clipRect区域,看清楚了,是目标位图上的clipRect区域!

经过如许懂得后,我们可以把draw办法包装一下:

  1. public static function draw(target:BitmapData, source:IBitmapDrawable, rect:Rectangle, pt:Point, colorTransform:ColorTransform = null, scale:Number = 1):void  
  2. {  
  3.  clipRect.x = pt.x;  
  4.  clipRect.y = pt.y;  
  5.  clipRect.width = rect.width * scale;  
  6.  clipRect.height = rect.height * scale;  
  7.  matrix.tx = pt.x - rect.x;  
  8.  matrix.ty = pt.y - rect.y;  
  9.  matrixmatrix.a = matrix.d = scale; //x,y分别缩放  
  10.  target.draw(source, matrix, colorTransform, null, clipRect, false);  
  11. }  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器