Существует ли уравнение смещения для изменения положения Z в Actionscript?
Скажем, у меня есть видеоклип, который при загрузке я установил в положение.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;
1 ответ
Вы должны отделить фактические точки x и y с трехмерными точками пространства (я использую _x, _y и _z). используя основную идею, что все, что находится дальше от вас, вам нужно будет определить источник для точки схода и "фокусное расстояние" (например, объектив камеры), которое будет определять, как быстро все исчезнет на заднем плане. попробуйте поиграть со значениями, но что-то около 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