Home > 语言编程 > AS3中利用matrix矩阵变换实现上下左右转置反转

AS3中利用matrix矩阵变换实现上下左右转置反转

利用Flash AS3中的matrix矩阵变换实现对flash中的显示对象(DisplayObject),例如:图片、图像、动画的处理对程序员来说是很方便的,下面的代码实现对Flash中任意的显示对象DisplayObject的上下和左右的转置、反转、翻转操作。
原理很简单AS中设置对象的zoom值为-1即可,a为水平方向,b为垂直方向。


代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Transverse
{
	public static function transLeftRight(obj : DisplayObject) :void
	{
		var mtx:Matrix = new Matrix();
		mtx.a=-1;	//设置a为-1
		mtx.tx=obj.width;	//设置平移
		mtx.concat(obj.transform.matrix);	//连接矩阵
		obj.transform.matrix = mtx;	//变化
	}
	public static function transUpDown(obj : DisplayObject) :void
	{
		var mtx:Matrix = new Matrix();
		mtx.b=-1;	//设置b为-1
		mtx.ty=obj.height;	//设置平移
		mtx.concat(obj.transform.matrix);	//连接矩阵
		obj.transform.matrix = mtx;	//变化
	}
}

简单介绍一下代码

//定义新的变换矩阵实例
var mtx:Matrix = new Matrix();
//设置a为 -1 ,将进行水平转置;
//设置b为 -1 ,将进行垂直转置
mtx.a=-1;
//设置平移,不设置则就地转置
//tx,ty可根据变换的方式设置为对象的width和height
mtx.tx=obj.width;
//连接矩阵,将obj的旧变换矩阵 + mtx得到新的矩阵
//转置之前需要对obj的旧的变换矩阵进行连接,可以
//保留obj转置之前进行的矩阵变换。
mtx.concat(obj.transform.matrix);
//transform变化
obj.transform.matrix = mtx;

Categories: 语言编程 Tags: ,
  1. No comments yet.
  1. No trackbacks yet.