banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

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

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

代码如下:

public class Transverse
{
public static function transLeftRight(obj : DisplayObject)
{
var mtx = 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)
{
var mtx = new Matrix();
mtx.b=-1; // 设置 b 为 - 1
mtx.ty=obj.height; // 设置平移
mtx.concat (obj.transform.matrix); // 连接矩阵
obj.transform.matrix = mtx; // 变化
}
}

简单介绍一下代码

// 定义新的变换矩阵实例 var mtx = 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;

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。