En versiones de Flash Player anteriores a Flash Player 10 y en versiones de Adobe AIR anteriores a Adobe AIR 1.5, los objetos de visualización tienen dos propiedades,
x
e
y
, que permiten colocarlos en un plano bidimensional. A partir de Flash Player 10 y Adobe AIR 1.5, todos los objetos de visualización de ActionScript tienen una propiedad
z
que permite colocarlos a lo largo del eje z (eje que suele usarse para indicar profundidad o distancia).
Flash Player 10 y Adobe AIR 1.5 incorporan compatibilidad para efectos 3D. No obstante, los objetos de visualización son esencialmente planos. Finalmente todos los objetos de visualización como, por ejemplo, MovieClip o Sprite, se representan a sí mismos en dos dimensiones, en un solo plano. Las funciones de 3D permiten situar, mover, rotar y transformar estos objetos planos en tres dimensiones. También permiten administrar puntos 3D y convertirlos en coordenadas x, y 2D para que pueda proyectar objetos 3D en una vista bidimensional. Con el uso de estas funciones puede simular diversos tipos de experiencias en 3D.
El sistema de coordenadas 3D utilizado por ActionScript difiere de otros sistemas. Cuando se utilizan coordenadas 2D en ActionScript, el valor de x aumenta conforme se desplaza hacia la derecha por el eje x y el valor de y aumenta conforme desciende por el eje y. El sistema de coordenadas 3D conserva estas convenciones y añade un eje z cuyo valor aumenta conforme se aleja del punto de vista.
Direcciones positivas de los ejes x, y y z en el sistema de coordenadas 3D de ActionScript.
-
A.
-
Eje + Z
-
B.
-
Origen
-
C.
-
+Eje X
-
D.
-
+Eje Y
Nota:
se debe tener en cuenta que Flash Player y AIR siempre representan 3D en capas. Esto significa que si el objeto A está delante del objeto B en la lista de visualización, Flash Player o AIR siempre representan A delante de B independientemente de los valores del eje z de los dos objetos. Para resolver este conflicto entre el orden de la lista de visualización y el orden del eje z, utilice el método
transform.getRelativeMatrix3D()
para guardar y posteriormente reordenar las capas de los objetos de visualización 3D. Para obtener más información, consulte
Uso de objetos Matrix3D para reordenar la visualización
.
Las siguientes clases de ActionScript admiten las nuevas funciones relacionadas con 3D:
-
La clase flash.display.DisplayObject contiene la propiedad
z
y nuevas propiedades de escala y rotación para manipular objetos de visualización en el espacio 3D. El método
DisplayObject.local3DToGlobal()
ofrece una forma sencilla de proyectar geometría 3D en un plano 2D.
-
La clase flash.geom.Vector3D se puede utilizar como estructura de datos para administrar puntos 3D. También admite matemáticas vectoriales.
-
La clase flash.geom.Matrix3D admite transformaciones complejas de geometría 3D como, por ejemplo, rotación, escala y traslación.
-
La clase flash.geom.PerspectiveProjection controla los parámetros para el mapeado de geometría 3D en una vista 2D.
Existen dos enfoques diferentes en la simulación de imágenes 3D en ActionScript:
-
Organización y animación de objetos planos en un espacio 3D. Este enfoque implica la animación de objetos de visualización utilizando las propiedades x, y y z de los objetos, o bien, estableciendo propiedades de rotación y escala mediante la clase DisplayObject. Se puede obtener un movimiento más complejo utilizando el objeto DisplayObject.transform.matrix3D. El objeto DisplayObject.transform.perspectiveProjection personaliza el modo en que los objetos de visualización se dibujan en perspectiva 3D. Utilice este enfoque cuando desee animar objetos 3D que consten de planos fundamentalmente. Los ejemplos de este enfoque incluyen galerías de imágenes 3D u objetos de animación 2D organizados en un espacio 3D.
-
Generación de triángulos 2D a partir de geometría 3D y representación de estos triángulos con texturas. Para utilizar este enfoque, en primer lugar debe definir y administrar datos sobre objetos 3D y posteriormente convertir estos datos en triángulos 2D para la representación. Las texturas de mapa de bits se pueden asignar a estos triángulos y a continuación los triángulos se dibujan en un objeto graphics utilizando el método
Graphics.drawTriangles()
. Los ejemplos de este enfoque incluyen la carga de datos del modelo 3D desde un archivo y la representación del modelo en pantalla, o bien, la generación y el dibujo de terreno 3D como mallas de triángulo.