假设我有一个影片剪辑,加载时我将它的 .z 位置设置为 2000 以使其在背景中看起来很远......我到底如何才能确定它的 x 和 y 点会出现在哪里在舞台上?有方程吗?
例如;
original.x = 200;
original.y = 200;
original.z = 0;
new.z = 2000;
new.x = original.x*10;
new.y = original.y*10;
假设我有一个影片剪辑,加载时我将它的 .z 位置设置为 2000 以使其在背景中看起来很远......我到底如何才能确定它的 x 和 y 点会出现在哪里在舞台上?有方程吗?
例如;
original.x = 200;
original.y = 200;
original.z = 0;
new.z = 2000;
new.x = original.x*10;
new.y = original.y*10;
您必须使用 3D 空间点(我使用 _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