|
Flash CS4 のリソース |
Matrix3D オブジェクトを使用した表示の並べ替え前述のように、相対的な z 軸に関係なく、表示リスト内の表示オブジェクトのレイヤー順序によって表示のレイヤー順序が決定されます。アニメーションによって表示オブジェクトのプロパティが表示リスト順序とは異なる順序に変換される場合、ユーザーには、z 軸レイヤーに対応しない表示オブジェクトレイヤーが表示される場合があります。したがって、ユーザーから離れた場所に表示する必要のあるオブジェクトが、ユーザーに近い場所にあるオブジェクトの前に表示される場合があります。 3D 表示オブジェクトのレイヤーがオブジェクトの相対的な奥行きに対応していることを確認するには、次のようなアプローチを使用します。
この並べ替えにより、相対的な z 軸に従ってオブジェクトが表示されることが保証されます。 次のコードでは、3D ボックスの 6 つの面が正しく表示されます。回転が適用された後で、ボックスの面を並べ替えます。 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_jp を参照してください。 アプリケーションのファイルは、Samples/ReorderByZ フォルダにあります。 |