[AS3]as3.0强大的绘制对象BitmapData.draw
参数详解:
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办法包装一下:
- public static function draw(target:BitmapData, source:IBitmapDrawable, rect:Rectangle, pt:Point, colorTransform:ColorTransform = null, scale:Number = 1):void
- {
- clipRect.x = pt.x;
- clipRect.y = pt.y;
- clipRect.width = rect.width * scale;
- clipRect.height = rect.height * scale;
- matrix.tx = pt.x - rect.x;
- matrix.ty = pt.y - rect.y;
- matrixmatrix.a = matrix.d = scale; //x,y分别缩放
- target.draw(source, matrix, colorTransform, null, clipRect, false);
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例