2011-05-25 62 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