2013-06-01 2 views
0

Я действительно смущен, пытаясь понять основы того, как 3d работает во Flash и ActionScript.Вращать MovieClip 90 градусов по оси Y ActionScript 3

Я думаю, объясняя, как я могу сделать следующее, что может сделать вещи немного яснее.

Я создал зеленый прямоугольник в MovieClip и назначил ему класс. Затем я создаю несколько экземпляров этого класса на сцене. Если я поместил их в линию по экрану и установил свойство rotationY на 90 из них, все они выглядят по-другому. Они выглядят так, как если бы вы смотрели на них через камеру.

Это код ActionScript:

package { 

    import flash.display.MovieClip; 
    import flash.events.Event; 


    public class Main extends MovieClip { 

     public function Main() { 

      for (var i:uint=0; i<21; i++) 
      { 
       var obj = new Test(); 
       obj.y = 300; 
       obj.x = i * 80; 
       obj.rotationY = 90; 
       addChild(obj); 
      } 
     } 
    } 

} 

Это скриншот выхода: screenshot 1

Это скриншот MovieClip: screenshot 2

Как я пошел бы о размещении их на экране, чтобы все они появились сбоку (например, один удар в центре)? Я действительно хочу отключить, глядя на него через камеру.

Аналогичным образом это означает, что даже объекты, находящиеся на сцене, имеющие поворот у 0, также обрабатываются так, как будто они находятся в трехмерном пространстве и слегка вращаются?

Спасибо!

ответ

1

Найдено http://backroom.bostonproductions.com/?p=761, что объясняет это довольно хорошо.

Это потому, что вращение 90 градусов в зависимости от схода точки стадии, (который может быть установлен с помощью инструмента 3D-преобразования в IDE). Точка исчезновения затронет все ваши отображаемые объекты по умолчанию, в результате чего 3D-поворот станет продуктом исчезающей точки . Но что, если вы не хотите, чтобы ваш экранный объект вращался в 3D пространстве в соответствии с точкой схода? Что, если вы хотите, чтобы повернул свой квадрат на 90 градусов и увидел квадрат, повернутый на 90 градусов, независимо от его местоположения на сцене? Вы можете справиться с этим, используя ActionScript 3 и PerspectiveProjection. Преобразуя точку зрения на ваш квадрат и устанавливая проекционный центр в положение X и Y вашего квадрата, теперь вы можете поворачивать его независимо от точки схода сцены.

Для каждого MovieClip должен быть назначен собственный объект PerspectiveProjection.

Также элементы только преобразованы в 3D (автоматически), когда их х или у поворота или г положение установлено, как описано в http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS7D38179D-58B9-409c-9E5C-257DDECB1A02.html

Когда вы явно установить г свойство экранного объекта к числовым значение, объект автоматически создает 3D-преобразование . Вы можете изменить эту матрицу, чтобы изменить настройки 3D-преобразования этого объекта.

Кроме того, 3D вращение отличается от 2D вращения. В 2D ось вращение всегда перпендикулярно плоскости x/y - другими словами, на ось z. В 3D ось вращения может быть вокруг любой оси x, y, или z. Установка свойств поворота и масштабирования дисплея позволяет ему перемещаться в трехмерном пространстве.

+0

Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – gronostaj

+0

Спасибо. Я обновил его. –

+0

Хорошо, что нашел решение и спасибо за отправку. Не забудьте принять свой ответ, чтобы вопрос можно отметить как ответ. – terdon

Смежные вопросы