|
Flash CS4 리소스 |
Matrix3D 객체를 사용하여 표시 순서 재지정앞에서 언급했듯이 표시 목록에 있는 표시 객체의 레이어 순서는 상대적 z축에 관계없이 표시 레이어 순서를 결정합니다. 애니메이션에서 표시 객체의 속성을 표시 목록 순서와는 다른 순서로 변형할 경우 보는 사람에게는 표시 객체 레이어가 z축 레이어와 일치하지 않게 표시됩니다. 따라서 보는 사람에게서 멀리 떨어진 객체가 보는 사람과 가까이 있는 객체의 앞에 나타날 수 있습니다. 3D 표시 객체의 레이어가 객체의 상대적 깊이와 일치하게 하려면 다음과 같은 방법을 사용합니다.
이렇게 순서를 다시 지정하면 객체가 상대적 z축에 따라 표시됩니다. 다음 코드에서는 3D 상자의 여섯 개 면을 올바르게 표시합니다. 상자에 회전을 적용한 후 상자의 면 순서를 다시 지정합니다. public var faces:Array; . . .
public function ReorderChildren()
{
for(var ind:uint = 0; ind < 6; ind++)
{
faces[ind].z = faces[ind].child.transform.getRelativeMatrix3D(root).position.z;
this.removeChild(faces[ind].child);
}
faces.sortOn("z", Array.NUMERIC | Array.DESCENDING);
for (ind = 0; ind < 6; ind++)
{
this.addChild(faces[ind].child);
}
}
이 샘플에 대한 응용 프로그램 파일을 가져오려면 www.adobe.com/go/learn_programmingAS3samples_flash_kr을 참조하십시오. 응용 프로그램 파일은 Samples/ReorderByZ 폴더에 있습니다. |