3D 표시 객체 만들기 및 이동

Flash Player 10 이상, Adobe AIR 1.5 이상

2D 표시 객체를 3D 표시 객체로 변환하려면 표시 객체의 z 속성을 숫자 값으로 명시적으로 설정합니다. z 속성에 값을 할당하면 표시 객체에 대한 새 Transform 객체가 만들어집니다. DisplayObject.rotationX 또는 DisplayObject.rotationY 속성을 설정해도 새 Transform 객체가 만들어집니다. Transform 객체에는 표시 객체가 3D 공간에 표시되는 방식을 제어하는 Matrix3D 속성이 있습니다.

다음 코드에서는 "leaf"라는 표시 객체의 좌표를 설정합니다.

leaf.x = 100; leaf.y = 50; leaf.z = -30;

leaf라는 Transform 객체의 matrix3D 속성에서 이러한 값과 해당 값에서 파생된 속성을 볼 수 있습니다.

var leafMatrix:Matrix3D  = leaf.transform.matrix3D; 
 
trace(leafMatrix.position.x); 
trace(leafMatrix.position.y); 
trace(leafMatrix.position.z); 
trace(leafMatrix.position.length); 
trace(leafMatrix.position.lengthSquared);

Transform 객체의 속성에 대한 자세한 내용은 Transform 클래스를 참조하십시오. Matrix3D 객체의 속성에 대한 자세한 내용은 Matrix3D 클래스를 참조하십시오.

3D 공간에서 객체 이동

x, y 또는 z 속성의 값을 변경하여 3D 공간에서 객체를 이동할 수 있습니다. z 속성의 값을 변경하면 객체는 뷰어에서 더 가깝게 또는 더 멀리 표시됩니다.

다음 코드에서는 이벤트에 대한 응답으로 두 타원의 z 속성 값을 변경하여 해당 타원을 z축을 따라 뒤로 및 앞으로 이동합니다. ellipse2 ellipse1 보다 빠르게 이동합니다. 즉, 해당 z 속성은 각 프레임 이벤트에서 20의 배수만큼씩 증가하는 반면 ellipse1 z 속성은 10의 배수만큼씩 증가합니다.

var depth:int = 1000; 
 
function ellipse1FrameHandler(e:Event):void 
{ 
    ellipse1Back = setDepth(e, ellipse1Back); 
    e.currentTarget.z += ellipse1Back * 10; 
} 
function ellipse2FrameHandler(e:Event):void 
{ 
    ellipse2Back = setDepth(e, ellipse1Back); 
    e.currentTarget.z += ellipse1Back * 20; 
} 
function setDepth(e:Event, d:int):int 
{ 
    if(e.currentTarget.z > depth) 
    { 
        e.currentTarget.z = depth; 
        d = -1; 
    } 
    else if (e.currentTarget.z <  0) 
    { 
        e.currentTarget.z = 0; 
        d = 1; 
    } 
}

3D 공간에서 객체 회전

객체의 회전 속성인 rotationX , rotationY rotationZ 를 어떻게 설정하느냐에 따라 세 가지 방법으로 객체를 회전할 수 있습니다.

다음 그림에서는 회전되지 않은 두 개의 사각형을 보여 줍니다.

다음 그림에서는 두 사각형의 컨테이너에 대한 rotationY 속성 값을 늘려 y축을 기준으로 사각형을 회전한 모양을 보여 줍니다. 두 사각형의 컨테이너 또는 부모 표시 객체를 회전하면 두 사각형이 모두 회전합니다.

container.rotationY += 10;

다음 그림에서는 사각형의 컨테이너에 대한 rotationX 속성을 설정할 때 나타나는 결과를 보여 줍니다. 이렇게 하면 사각형이 x축을 기준으로 회전합니다.

다음 그림에서는 사각형에 대한 컨테이너의 rotationZ 속성 값을 늘릴 때 나타나는 결과를 보여 줍니다. 이렇게 하면 사각형이 z축을 기준으로 회전합니다.

표시 객체는 3D 공간에서 이동과 회전을 동시에 할 수 있습니다.