我正在尝试理解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.
答案 0 :(得分:1)
使用scaleX
和scaleY
可以更轻松地完成您在那里的工作:
thing.scaleX = thing.scaleY = 2;
使用Matrix实现上述结果并没有真正的优势(我能想到); DisplayObjects本身内置了更简单的功能。我真正使用矩阵来改变物体形状的唯一一次就是歪斜或剪切它。
也就是说,矩阵作为BitmapData.draw()
的参数非常有用,可以操作结果图形 - 我在这里使用了Matrix.translate()
。
我会看到这一点,因为它很清楚:
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/Matrix.html