8.7.10 改变内建行为

来源:互联网 发布:激战2初始人女捏脸数据 编辑:程序博客网 时间:2024/05/19 09:09

  位移向量的计算原理不仅适用于伸缩映射。在旋转和斜切等变换中,使用同样的计算原理。可以利用这个特性,改变Matrix类内建方法的行为。

方法rotate()的默认行为,是围绕显示对象父容器的坐标原点旋转。前文曾演示了通过translate()方法,将显示对象中心移动到父容器原点。这样做是为了得到围绕中心旋转的执行结果。通过学习,现在读者已经具备充足的矩阵知识,理解了变形中位移向量txty的作用。可以用更简洁的方法,改变rotate()方法的行为。

打开例8-9的代码编辑器,输入以下代码:

//默认的方法行为

function rotate_1():void

{

         objMatrix.rotate(flipstep/100);

         flipobjbox.flipObj.transform.matrix=objMatrix;

}

 

//修改方法的行为

function rotate_2():void

{

         objMatrix.ty-=80;

         objMatrix.rotate(flipstep/100);

         objMatrix.ty+=80;

         flipobjbox.flipObj.transform.matrix=objMatrix;

}

在主程序中调用执行rotate_2()函数:

rotate_2();

编译并执行这段代码,程序的运行效果如图所示:

这段代码中,rotate_1()演示了默认情况下的Matrix.rotate()方法,其行为早已为读者所熟悉,不再赘述。在rotate_2()中,代码通过修改矩阵的ty值,规避了rotate()方法执行时的向量运算,达到修改方法执行行为的目的。

在程序的输出画面,可观察到显示对象围绕其中心顺时针旋转。

原创粉丝点击