flash as3了解矩阵

时间:2011-05-25 22:06:36

标签: flash actionscript-3

我正在尝试理解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.

1 个答案:

答案 0 :(得分:1)

使用scaleXscaleY可以更轻松地完成您在那里的工作:

thing.scaleX = thing.scaleY = 2;

使用Matrix实现上述结果并没有真正的优势(我能想到); DisplayObjects本身内置了更简单的功能。我真正使用矩阵来改变物体形状的唯一一次就是歪斜或剪切它。

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

我会看到这一点,因为它很清楚:

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/Matrix.html