flash 中实现斜切变型

 使用transform.matrix较为繁琐,但其优势是功能强大:使用matrix.concat()方法可轻松的将显示对象斜切变形:

var myMatrix:Matrix=matrix_rect.transform.matrix;

var tempx,tempy;

tempx=matrix_rect.x+matrix_rect.width/2;

tempy=matrix_rect.y+matrix_rect.height/2;

myMatrix.translate(-tempx,-tempy);

//实现斜切变形代码开始

var skewMatrix:Matrix = new Matrix();

skewMatrix.b = Math.tan(1);

myMatrix.concat(skewMatrix);

//实现斜切变形代码结束

myMatrix.rotate(2 * Math.PI * (-45 / 360));

myMatrix.translate(tempx,tempy);

matrix_rect.transform.matrix = myMatrix;

显示效果(http://blog.csdn.net/AS3_Flash/archive/2008/04/18/2303066.aspx),矩形在水平方向斜切变型。

其中skewMatrix.b是设置水平方向的斜切,如果要设置垂直方向的斜切,则需要访问skewMatrix.a属性。通过改变Math.tan(x)中x变量的值,可以控制斜切的幅度。

斜切变形是卡通动画中有用的一种动画变形,在模拟快速运动的物体忽然停止,或者静止的物体忽然加速,以及托盘中摆动的布丁等动画形象时,斜切变形都有其应用的天地。 

本文来自CSDN博客,出处:http://blog.csdn.net/AS3_Flash/archive/2008/04/18/2303066.aspx

posted @ 2009-12-07 23:20  zhangsir  阅读(580)  评论(0编辑  收藏  举报