yoshiweb.NET-blog



HOME > blog > mx.behaviors.DepthControl クラス
« Adobe Motion Design Center | ヘテムルはじめました。 »

mx.behaviors.DepthControl クラス

Flash MX 2004のころからビヘイビアに入っているのに、なぜかFlash8になってもヘルプに書かれていないムービークリップの深度を入れ替えたりできるクラス。
GoogleやYahooで検索しても、あまりヒットしないので書いてみる。

例: test_mc の重ね順を変更するには↓
// ひとつ前面に配置mx.behaviors.DepthControl.bringForward(test_mc);// ひとつ背面に配置mx.behaviors.DepthControl.sendBackward(test_mc);// 最前面に配置mx.behaviors.DepthControl.bringToFront(test_mc);// 最背面に配置mx.behaviors.DepthControl.sendToBack(test_mc);


このクラスを使ってちょっと注意が必要なのが、このクラスは「存在しているムービークリップ同士を swapDepths で入れ替えている」みたいなので、ひとつのムービークリップの深度を変えると、他のムービークリップの深度まで変わります。

でもこれは、「後ろに並んでいた人が前に割り込めば、それまで並んでいた人はひとつずつ後ろに下がる」と一緒で動作としては理解できますが、問題は「ムービークリップ同士の深度しか入れ替わらない」ということです。
ムービークリップの間にテキストフィールドなどが重なって配置されている場合、テキストフィールドの順番は変わってくれないのです。これはちょっと問題かも...。
テキストフィールドやボタンにも深度があるのに、なんでムービークリップにしか swapDepths がないんだ?

まぁ、ムービークリップだけで深度を入れ替えるなら問題なさそうなので、ガードゲームなどを作るときには充分使えそうです。

【追記】
ActionScript 3.0 の場合
// 最前面に表示this.setChildIndex ( mc, this.numChildren - 1 );
投稿者 yoshiweb - ActionScript - 2005/12/10 - 02:12:42 - Permalink
このエントリーをはてなブックマークに追加

Comments

ども~
わぁ…yoshiwebさんと同じ事かんがえてた!
昨日、ジャバスクリプトで、フラッシュの右クリックの表示を変更するものをゲットして、サブメニューの表示の並びを変えたいなぁと思い、Flashのヘルプを見ていて、ふと思ったんです。「swapDepthsしかない…」でも、前に作ったサイトではポップアップウィンドーのDepthを簡単に入れ替えていたんで、調べてみると、やっぱりビヘイビアでした。この頃はさっぱりビヘイビア使っていなかったんで、あせりました…
yoshiwebさんと同じような所に同じくらいの時間で疑問抱けて光栄です(マテ
僕なんかに光栄に思われても嬉しくないですよね^^;
本当に、こういうところ不親切ですよね~
投稿者 niea - 2005/12/11 - 09:33:19
すみません…
△並び
○順番
並びでも通じそう…^^;
投稿者 niea - 2005/12/11 - 09:35:57
> 僕なんかに光栄に思われても嬉しくないですよね^^;
そんなことありませんよ。ありがとうございます。ちなみに自分が分からないから検索したんじゃなくて、誰かが既に書いてたら書く意味がないかな?と思って検索してみただけです。間違ったことを書いている場合は指摘してください。
投稿者 yoshiweb - 2005/12/12 - 08:15:45

コメントを書く

※ スパム対策のためコメント内の URL は全角で書いてください。あとで半角に変換します。