AS3位图任意形变
1.Matirx
位移,缩放,平行扭区
1 var matrix:Matrix = new Matrix(); 2 //x方向平移100,y方向平移200 3 matrix.translate(100, 200); 4 //matrix.tx = 100; 5 //matrix.ty = 200; 6 //x方向缩放0.5,y方向缩放0.5 7 matrix.scale(0.5, 0.5); 8 //matrix.a = 0.5; 9 //matrix.d = 0.5; 10 //顺时针方向旋转45度 11 matrix.rotate(Math.PI/4); 12 //matrix.a = 0.707107; 13 //matrix.b = 0.707107; 14 //matrix.c = -0.707107; 15 //matrix.d = 0.707107; 16 bmp.transform.matrix = matrix;
矩阵形变只能控制位移,绽放以及平行扭曲,记住扭区仅限于平行方向,如果需要四角任意拉伸,就需要三角形变了。
2.Graphics.drawTriangles()
drawTriangles(vertices:Vector.<Number>, indices:Vector.<int> = null, uvtData:Vector.<Number> = null, culling:String = "none"):void
1 var canvas:Sprite = new Sprite(); 2 var vec:Vector.<Number> = new Vector.<Number>(); 3 vec.push(0,0,-40,180,250,180,210,0); 4 var uvt:Vector.<Number> = new Vector.<Number>(); 5 uvt.push(0,0,0,1,1,1,1,0); 6 var indices:Vector.<int> = new Vector.<int>(); 7 indices.push(0,1,2,3,2,0); 8 canvas.graphics.beginBitmapFill(new bd()); 9 canvas.graphics.drawTriangles(vec,indices,uvt); 10 canvas.graphics.endFill(); 11 canvas.x = 200; 12 canvas.y =100; 13 addChild(canvas);
官方文档参考:http://help.adobe.com/zh_CN/as3/dev/WS84753F1C-5ABE-40b1-A2E4-07D7349976C4.html