2009-10-12 34 views
0

說我有一個電影剪輯,當加載時,我把它的.z位置設置爲2000,以使它在背景中看起來很遠......我可以如何設置它的x和y點,以確定它在哪裏會出現在舞臺上?有沒有一個等式?Actionscript中Z位置變化是否存在偏移公式?

E.g .;

original.x = 200; 
original.y = 200; 
original.z = 0; 

new.z = 2000; 
new.x = original.x*10; 
new.y = original.y*10; 

回答

1

你必須用三維空間點(我使用_x,_y和_z)分出實際的x和y點。使用一個基本的想法,即遠離你的任何事物將會是你將需要定義一個消失點的起點和一個「焦距」(想象一個相機鏡頭),它將定義事物消失到背景中的速度。嘗試玩價值觀,但200左右的東西通常效果不錯。 這應該給你一些簡單的像這樣的地方爲my_mc是要對效果的對象:

my_mc._x = 0; 
my_mc._y = 0; 
my_mc._z = 200; 
var scaleRatio = focalLength/(focalLength + my_mc._z); 
my_mc.x = origin.x + my_mc._x * scaleRatio; 
my_mc.y = origin.y + my_mc._y * scaleRatio; 
my_mc.scaleX = my_mc.scaleY = scaleRatio; 

有在kirupa關於這個問題的一些很好的教程,試試這個(雖然它是在AS2理論是一樣的) http://www.kirupa.com/developer/actionscript/3dexplore.htm

+0

謝謝你的擡頭。我已經看過那個教程,並正在尋找一條捷徑。也許一個簡單的方程,我至少可以控制我的z尺度物體在舞臺上的位置。我真的必須用我猜想的大腦另一側來看待它。 – 2009-10-12 23:48:47

+0

好吧,如果你只是一個「錯誤的觀點」,那麼你可以做到這一點,只是與z上的尺度函數,這取決於你的使用真的。儘管如此,我還是發現了最簡單的「3D」模擬器。 – longstaff 2009-10-13 07:31:37