为什么下面两个代码块的结果不一样?
使用matrix.scale ()
const sprite:Sprite = new Sprite;
const matrix:Matrix = new Matrix;
sprite.transform.matrix = matrix;
matrix.translate(100, 50);
matrix.scale(2, 1);
sprite.transform.matrix = matrix;
trace(sprite.transform.matrix.toString());
设置sprite.scaleX
const sprite:Sprite = new Sprite;
const matrix:Matrix = new Matrix;
sprite.transform.matrix = matrix;
matrix.translate(100, 50);
sprite.transform.matrix = matrix;
sprite.scaleX = 2;
trace(sprite.transform.matrix.toString());
我有个主意。
trace(sprite.transform.matrix == sprite.transform.matrix);
结果为false。这意味着精灵在得到矩阵的时候会合成矩阵。
可以组成如下:
matrix.createBox(sprite.scaleX, sprite.scaleY, sprite.rotation, sprite.x, sprite.y);
首先缩放,然后旋转,最后平移。这是不一样的。