draw(),matrix简单使用



Matrix 表示一个转换矩阵

|  a    b    tx  |

|  c    d    ty  |

|  u    v    w  |  

Matrix只能应用在二维空间中,所以uvw分别默认为001

a,d 表示宽高的缩放,默认值是1,b.c控制倾斜度,tx,ty控制x坐标和y坐标,默认为原点00


matrix相当于一个模具/一个层,设置好后应用到具体的实物中,实物就会得到对应的效果。模具自身有很多方法

rotate,scale,translate,createGradientBox等,这些知识对模具的修改,


使用 1:设置Matrix ,将它赋给新的transform 的matrix属性,然后修改目标对象 的transform,即可应用

!2: BitmapData 的draw() 方法  bmd.draw(source:IBitmapDrawable,matrix:Matrix)等参数。

说明: draw 默认从对象的注册点开始,所以如果你的对象的注册点在左上角,可以得到完整显示对象,不然只会截取一部分,从注册点开始,算width,height

这时候需要Matrix来帮忙调整,偏移量可以通过Rectangle来帮忙,默认的Rectangle的left和top为改矩形的x坐标和y坐标,技巧是:你要活得相对于自己的矩形,

那么这个坐标就是相对于自己注册点的坐标,

var rect:Rectangle = obj.getRect(obj); //如果注册点在中心,left = - obj.width,top = - obj.height,这就是需要的偏移量,如果Container参数填舞台的话,就是左上角相对于舞台原点的坐标

var mat:Matrix = new Matrix(1,0,0,1,-rect.left,-rect.top);  // tx ty的值为图像'偏移的值,正常如果注册点在中心,需要向右下偏移,所以再加 -号

最后再重新设定显示对象的坐标:


 

var rect:Rectangle = pic.getRect(pic);
var bmd:BitmapData = new BitmapData(pic.width,pic.height,true,0);
var mat:Matrix = new Matrix(1,0,0,1);
bmd.draw(pic,mat);

var bm:Bitmap = new Bitmap(bmd);
bm.x = 100;
bm.y = 100;
addChild(bm);

可以用以实现简单的残影等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值