flash as3理解矩阵

flash as3理解矩阵,flash,actionscript-3,Flash,Actionscript 3,我试图了解flash的矩阵功能,因为我认为它将帮助我解决这个问题: 我把一系列的盒子分成4列。我想缩放一列(比如,按2的因子),并计算出它的新宽度,这样我就可以适当地移动其他列,使它们不被新缩放的列覆盖。我如何使用矩阵来计算呢?矩阵真的有必要吗?如果有,什么时候以及为什么?看起来我可以把某个东西的宽度乘以2,然后用这个值移动其余的列——为什么矩阵更好?如果我使用下面的代码,如何使用理论矩阵跟踪某个对象的宽度: var matrix:Matrix = new Matrix(); var scale

我试图了解flash的矩阵功能,因为我认为它将帮助我解决这个问题:

我把一系列的盒子分成4列。我想缩放一列(比如,按2的因子),并计算出它的新宽度,这样我就可以适当地移动其他列,使它们不被新缩放的列覆盖。我如何使用矩阵来计算呢?矩阵真的有必要吗?如果有,什么时候以及为什么?看起来我可以把某个东西的宽度乘以2,然后用这个值移动其余的列——为什么矩阵更好?如果我使用下面的代码,如何使用理论矩阵跟踪某个对象的宽度:

var matrix:Matrix = new Matrix();
var scaleFactor:Number = 2;
matrix.scale(scaleFactor, scaleFactor);
//need to trace an object's width assuming the matrix would be applied to it, without actually applying it here.

使用
scaleX
scaleY
可以更轻松地完成您在那里的工作,如下所示:

thing.scaleX = thing.scaleY = 2;
使用矩阵实现上述结果没有任何实际优势(我可以想到);DisplayObjects本身内置了更简单的功能。我唯一一次真正使用矩阵来改变物体的形状是倾斜或剪切它

也就是说,矩阵作为
BitmapData.draw()
的参数非常有用,可以操纵结果图形-我在这里使用了
Matrix.translate()

我认为这一点非常清楚:


使用
scaleX
scaleY
可以更轻松地完成您在那里的工作,如下所示:

thing.scaleX = thing.scaleY = 2;
使用矩阵实现上述结果没有任何实际优势(我可以想到);DisplayObjects本身内置了更简单的功能。我唯一一次真正使用矩阵来改变物体的形状是倾斜或剪切它

也就是说,矩阵作为
BitmapData.draw()
的参数非常有用,可以操纵结果图形-我在这里使用了
Matrix.translate()

我认为这一点非常清楚:


谢谢-是的-我查看了flash文档。我想出于某种原因,我认为矩阵对于预测事物的未来维度,或者事物的未修改维度,或者诸如此类的东西是必要的。但实际上它们都是一种捆绑的方式,对一个对象进行单独的转换;它们允许更复杂的转换。谢谢-是的-我查阅了flash文档。我想出于某种原因,我认为矩阵对于预测事物的未来维度,或者事物的未修改维度,或者诸如此类的东西是必要的。但实际上它们都是一种捆绑的方式,对一个对象进行单独的转换;它们允许更复杂的转换。