Изображение Поверните 3D во Flex, но отобразите другое изображение на обороте этого изображения? - PullRequest
2 голосов
/ 24 октября 2011

Я хочу повернуть 3D изображение с именем img1 во Flex.Я хочу повернуть его вокруг оси у на 180 градусов.Я могу сделать это с помощью 3D-эффекта, уже встроенного в Flex, но я хочу сделать немного по-другому.

Я хочу во время поворота, есть другое изображение с именем img2, которое появляется сзади img1 (в случае по умолчанию это изображениена обороте появляется img1) и при повороте финиша изображение будет img2.

Как я могу это сделать?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 20 ноября 2011

Спасибо, теперь я нашел решение.Пожалуйста, отметьте это здесь, это очень легко сделать.

http://forums.adobe.com/thread/921258

0 голосов
/ 07 ноября 2011

Если вам не нужен эффект перспективы, это довольно легко сделать. Грубая реализация (не тестировалась!):

// Event.ENTER_FRAME event listener
void on_enter_frame(event:Event):void
{
   // m_angle is a member of the class/flex component where on_enter_frame is declared
   // ANGLE_DELTA is just a constant
   m_angle += ANGLE_DELTA;
   // Angle clamping to the range [0, PI * 2)
   m_angle %= Math.PI * 2;
   if (m_angle < 0)
      m_angle += Math.PI * 2;

   // If we currently look at the front side...
   if (m_angle < Math.PI)
   {
      img1.visible = true;
      img2.visible = false;
      img1.scaleX = Math.cos(m_angle);
   }
   else
   {
      img1.visible = false;
      img2.visible = true;
      // If you omit negation, the back-side image will be mirrored
      img2.scaleX = -Math.cos(m_angle);
   } 
}

Таким образом, каждый кадр мы увеличиваем угол поворота, зажимаем его в диапазоне [0, PI * 2). Затем, в зависимости от значения угла поворота, мы скрываем / показываем пару ваших изображений, а затем выполняем масштабирование по x видимого изображения.

...