banner
李大仁博客

李大仁博客

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

在AS3中,可以使用矩阵变换来实现上下左右的转置和反转。

利用 Flash AS3 中的矩陣變換(matrix transformation)來處理 Flash 中的顯示對象(DisplayObject),例如圖片、圖像、動畫對於程序員來說非常方便。下面的代碼實現了對 Flash 中任意的顯示對象 DisplayObject 進行上下和左右的轉置、反轉、翻轉操作。原理非常簡單,只需要將對象的 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;

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。