| 深度とは?
|
| 全てのムービークリップには x,y 座標の他に深さを表現するz深度(順序)空間というものを持っています。違う種類のインスタンスを順番にステージに配置していき、それらを重ねてみると深度の関係がわかります。z順序はスタッキング順序とも呼びます。
※深度:Depth(デップス) |
|
| アイコン |
名前 |
深度 |
|
カメラ |
-16369 |
|
赤鉛筆 |
-16373 |
|
カクテル |
-16371 |
|
デジタルカメラ |
-16375 |
|
ミュール |
-16377 |
|
CD |
-16379 |
|
メール |
-16381 |
|
アイスクリーム |
-16383 |
|
上記のswfファイルでは深度を理解してもらう為に、7種類のアイコンを表示しています。深度の指定可能範囲は-16384 から 1048575 までです。 深度の数値が高いほど上にレンダリングされます。上記の表で見てみると一番上にくるのはカメラで、一番下はアイスクリームとなります。ドラッグ&ドロップして試してみてください。 |
| オーサリング時の深度の変更 |
インスタンスをステージに配置すると自動的に深度が割り当てられますが、その順番は簡単に変える事ができます。無意識の内に使っている方もいると思いますが簡単に説明します。 |

深度に関する色々なメソッドの説明をします。 |
MovieClip.getDepth() |
| ムービークリップインスタンスの深度を返すメソッドです。 下記のスクリプトではムービークリップcamera_mcの深度をtrace()で出力パネルに表示させる事ができます。 |
trace(camera_mc.getDepth()); |
MovieClip.swapDepths() |
指定した深度をtargetパラメータに指定したムービーと入れ替えます。下記のスクリプトではボタンをクリックしたらa_mcの深度とb_mcの深度を交換します。()内には-16384 から 1048575の数値を入れて交換もできます。
|
on (release) { this.a_mc.swapDepths(this.b_mc); } |
MovieClip.getNextestDepth() |
MovieClip内で同一レベル、レイヤー上に存在する他の全てのムービークリップの前面に表示できる深度インデックスを示す整数。 下記のスクリプトではattachMovie()メソッドを使って深度指定する箇所にgetNextDepth()を使用して何個も重ねて配置しています。ボタンを押す毎にcar_mcがどんどん配置されていきますから、重くなります。 |
on (release) { this.attachMovie("car", "car_mc", this.getNextHighestDepth(), {_x:0, _y:0}); } |
| MovieClip.getInstanceAtDepth() |
| 特定の深度にムービークリップが既に置かれているかどうかを判別する事ができます。 |
on (release) { this.attachMovie("abc", "my_mc", 500, {_x:50, _y:50}); trace(this.getInstanceAtDepth(500)); } |
| 最初にボタンを押したらリンケージ識別子 acb インスタンス名my_mcを深度500にアタッチして、次にtrace()で深度500にインスタンスがあるかないかを調べています。 |
MovieClip.getNextHighestDepth() |
| 現在のムービークリップ内でそのムービークリップを同一レベル、レイヤー上の他の全てのオブジェクトよりも前面に表示させたい場合に各メソッドに渡す深度値を調べる事ができます。 |
MoviClip.duplicateMovieClip() |
SWF ファイルの再生中に指定したムービークリップのインスタンスを作成します。下記のスクリプトはmy_mcをmy_mc1として指定した座標に複製しまています。これは複製であって配置ではありません。配置の場合はattachMovie()メソッドを使用します。
※重複の、二重の:duplicate(デュプリケイト) |
my_mc.duplicateMovieClip("my1_mc", this.getNextHighestDepth(), {_x:0, _y:0}); |