イナヅマTVログ

ActionScript 2, mx ライブラリ使用メモ mx.behaviors.DepthControl

| 0件のコメント

ActionScript 2 でインスタンスの深度(重なり順)管理に使える関数は swapDepths, getDepth と限られている。

インスタンスを最前面にするには最前面のインスタンスを変数に保持し swapDepths させる。
そのつど getDepth を使って各インスタンスの深度を走査し最前面のインスタンスと swapDepths させる。

どちらにせよ深度を変えるのに使えるのは swapDepths なので、深度を交換することしかできません。
単純に深度を変更(最前面)し他のインスタンスの深度を変更したくない時はかなり面倒くさい処理を挟まないといけなくなります。

Adobe(当時はMacromedia)開発チームもそれは承知していたようでコンポーネントように便利なクラスを開発してくれています。

import mx.behaviors.DepthControl;
 
// 再背面
DepthControl.sendToBack(target:MovieClip);
// 最前面
DepthControl.bringToFront(target:MovieClip);
// 深度を1段階低く
DepthControl.sendBackward(target:MovieClip);
// 深度を1段階高く
DepthControl.bringForward(target:MovieClip);

関数内部では走査処理が走っているのでインスタンスの数が多くなると当然フレームレートは落ちてしまいます。
めんどうなことはクラス内部で全部処理してくれるので便利に使えます。

コメントを残す

必須欄は * がついています


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください