2011-05-25 72 views
1

我想了解闪光灯的矩阵功能,因为我认为它会帮助我解决这个问题:闪光AS3理解矩阵

我有一系列的布置成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

你使用scaleXscaleY这样做有什么可以更容易地完成:

thing.scaleX = thing.scaleY = 2; 

没有真正的优势(我能想到)使用矩阵实现上述结果; DisplayObjects自身内置了更简单的功能。唯一一次我真的使用矩阵来改变对象的形状将是扭曲或剪切它。

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

我想看看这个,因为它是相当清楚的:

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

+0

谢谢 - 啊 - 我回顾Flash文档。我猜想出于某种原因,我认为矩阵对于预测事物的未来维度或事物的未修改维度或类似事物是必要的。但是,他们真的只是一种捆绑的方式,否则会对对象进行单独的转换? – mheavers 2011-05-26 14:04:18

+0

是的;并且它们允许更复杂的转换。 – Marty 2011-05-26 21:55:23