FlashFX supports pseudo-3D transforms — extending the standard 2D transform system with rotation around the X and Y axes (3D rotation), perspective projection, and Z-depth positioning. This enables:
FlashFX is not a 3D engine — there is no true 3D scene graph, no polygon meshes, no surface normals for lighting, and no global illumination. All 3D in FlashFX is applied as CSS-style 3D transforms to flat 2D elements.
Rotation X (Pitch) — Rotation around the horizontal axis. Tilts the element toward or away from the viewer:
Rotation Y (Yaw) — Rotation around the vertical axis. Rotates the element like a revolving door:
Rotation Z (Roll) — Standard 2D rotation around the depth axis. Identical to the 2D rotation property.
Z Position (Depth) — Moves the element along the Z axis — toward or away from the viewer:
3D transforms are applied in this order:
The order matters significantly for 3D rotation. A rotation of 90 degrees around X followed by 90 degrees around Y produces a different result than the reverse. This is a fundamental property of 3D rotation math, not a FlashFX limitation.
Avoiding gimbal lock: