• ベストアンサー

AS3.0の深度

AS3.0では深度管理が無くなったといいますが、 では、どのような方法で重なり順を変更するのでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

ActionScript3.0での表示オブジェクトの重なり順は DisplayObjectコンテナの表示リスト Index で管理します。 ステージ上に「_mc」というインスタンス名のムービークリップを手動で作成した場合, その「_mc」の Index はその「_mc」が存在する DisplayObject の getChildIndex メソッドで取得できます。 例えば this.getChildIndex(_mc); や MovieClip(root).getChildIndex(_mc) で Index を取得することができます。 表示順を入れ替える場合は逆に, DisplayObject の setChildIndex メソッドを使います。 上のように念仏のような感じで書いても意味がわかりにくいと思います。 次のような実験をして,実感するとわかりやすいと思います。 下の図のように, ステージ上にムービークリップ 「_mc1」,「_mc2」,「_mc3」を重なるように用意します。 ( 無事アップできますように... (~人~)。 ) フレームに次のように書いて[制御]→[ムービープレビュー]すると 図の「結果1」のような結果が得られます。 --------------------------------------------- trace("_mc1のIndex="+this.getChildIndex(_mc1)); trace("_mc2のIndex="+this.getChildIndex(_mc2)); trace("_mc3のIndex="+this.getChildIndex(_mc3)); trace("---this.setChildIndex(_mc1,1);---"); this.setChildIndex(_mc1,1); trace("_mc1のIndex="+this.getChildIndex(_mc1)); trace("_mc2のIndex="+this.getChildIndex(_mc2)); trace("_mc3のIndex="+this.getChildIndex(_mc3)); --------------------------------------------- フレームに次のように書いて[制御]→[ムービープレビュー]すると 図の「結果2」のような結果が得られます。 --------------------------------------------- trace("_mc1のIndex="+this.getChildIndex(_mc1)); trace("_mc2のIndex="+this.getChildIndex(_mc2)); trace("_mc3のIndex="+this.getChildIndex(_mc3)); trace("---this.setChildIndex(_mc1,2);---"); this.setChildIndex(_mc1,2); trace("_mc1のIndex="+this.getChildIndex(_mc1)); trace("_mc2のIndex="+this.getChildIndex(_mc2)); trace("_mc3のIndex="+this.getChildIndex(_mc3)); --------------------------------------------- このような実験を色々してみて感覚で掴んでみてください。 また,DisplayObject の numChildren で表示オブジェクトの個数を調べることができます。 個数がわかれば 「その個数-1」 で一番上にあるオブジェクトの Index がわかるということになります。 これを使えば,具体的な Index 番号がわからなくても, 特定のインスタンスを一番上に表示することができます。 ---------------------------------------------- trace("表示オブジェクトの個数="+this.numChildren); trace("_mc1のIndex="+this.getChildIndex(_mc1)); trace("_mc2のIndex="+this.getChildIndex(_mc2)); trace("_mc3のIndex="+this.getChildIndex(_mc3)); trace("---this.setChildIndex(_mc1,this.numChildren-1);---"); this.setChildIndex(_mc1,this.numChildren-1); trace("_mc1のIndex="+this.getChildIndex(_mc1)); trace("_mc2のIndex="+this.getChildIndex(_mc2)); trace("_mc3のIndex="+this.getChildIndex(_mc3)); ---------------------------------------------- 上のスクリプトによる出力結果↓ ------------------------------------------- 表示オブジェクトの個数=3 _mc1のIndex=0 _mc2のIndex=1 _mc3のIndex=2 ---this.setChildIndex(_mc1,this.numChildren-1);--- _mc1のIndex=2 _mc2のIndex=0 _mc3のIndex=1 ------------------------------------------- 書いている内容は違いますが, 同じようなことを同じような図的説明で書かれてあるページをCS4のヘルプから発見しました。 DisplayObjectContainer - ActionScript 3.0 言語およびコンポーネントリファレンス 「addChildAt () メソッド 」 http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/display/DisplayObjectContainer.html#addChildAt() ↑最後の () までリンクがかからないかもしれません。最後の () までが URL です。 エイチttp://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/display/DisplayObjectContainer.html#addChildAt()

tkmkok
質問者

お礼

お礼が遅くなりまして申し訳ございません! もの凄く丁寧に教えていただき本当に感謝感謝です。 画像やURLもとても参考になります。 AS2.0の時よりは管理がややこしくないですね。 ありがとうございました!!!!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 深度を確認するには

    MCの深度を確認するのにtrace(深度)とする方法はあるでしょうか? ご存じありましたら書き込みをください。よろしくお願いします。

    • ベストアンサー
    • Flash
  • 被写界深度が浅いデジカメを教えてください。

    一番被写界深度が浅いデジカメを教えてください。 被写界深度を変更できるデジカメがあれば、教えてください。 フォーサイズとの比較もお願いします。

  • 補償深度と臨海深度の関係について

    植物プランクトンの海洋における補償深度と臨海深度の関係についての質問です。 一般に補償深度より臨海深度の方が深くなっているようですが、その理由がいまいちよく分からず、ピンとくるイメージがわきません。 初歩的な質問で申し訳ありませんが、分かりやすくご説明いただけますと嬉しいです。よろしくお願い致します。

  • 焦点深度について教えてください

    医療でオペに顕微鏡を使いたいのですが その際に焦点深度という言葉がでてきます。 高価なものは、焦点深度が深いようです。 解説を読むと、 例えば対象が5mm動いたとき、焦点深度が浅いと視野から なくなるが深いとなくならない、、という説明がありました。 焦点深度が深いと許容度が高くなるということだと思うのですが 高倍率になると許容度が高くなるのは理解できますが 同倍率で何故許容度に差がでるのかが理解できません。 あやふやな質問で申し訳ありませんが焦点深度についての 総論的な解説と何故同倍率で許容度に差が出るかの解説 をご教授していただけたら幸いです。 よろしくお願いいたします

  • 計測深度ってなんですか?

    計測深度ってなんですか?知っている事を教えてください。

  • 凍結深度

    地域ごとで決まっている凍結深度というのは、どうやって決めているのでしょうか? どなたかお教えください。

  • N値と深度の関係

    ボーリングデータを集約し、縦軸に深度、横軸にN値をとり深度分布を表現した図を見かけます。 説明文に頻繁に「深度が漸増すると伴にN値が増加する」とあります。 深度が深くなるにつれN値が大きくなるのは、古い地層なので直感的にも分かります。 わざわざこのように表現するのには何かあるのでしょうか?(深度が漸増すると伴にN値が増加するとこういう風に安全であるなど・・・) 逆に漸増しなければ安全上など何か問題があるのでしょうか? そもそもN値と深度の関係を図にする意図とは何なのでしょうか?

  • 映像のビット深度について

    こんにちは。 「映像のビット深度」とは、「ピクセル毎のビット数」だと認識しています。 多くのWMV動画のビット深度は、24Bitとなっています。 ところが、ビット深度が24BitであるWMV動画を、 MP4形式に変換した場合、ビット深度がかならず8Bitになります。 ビット深度は、動画の形式によって決まるものなのでしょうか? また、ビット深度が24BitのWMV動画を、MP4形式に変換したところ、 8Bitになったのですが、実際に再生して両者を比べてみても、 画質に差はありませんでした。 ビット深度は、画質にさほど影響しないのでしょうか? 以上です。 よろしくお願い致します。

  • 凍結深度について

    寒冷地域の上下水道管は、凍結防止のために地面の凍結深度以下に埋設配管されていると思うのですが、凍結深度はどのように算出されているのでしょうか。 精密に計算するなら気象条件や地質など、複雑になってしまいますが一般的なものがあればお願いします。

  • テレビのビット深度について

    テレビのビット深度について教えて下さい。 現在テレビの勉強中ですが「現行フルHDの規格でビット深度が8-bit」との説明がネットにありました。 そこでビット深度の意味が分からなかったので、調べてみるとWebページに以下の文がありました。 「ビット深度は、1画素が表示できる色の数を表します。ビット深度が高いほど、たくさんの色を表示でき、より自然で滑らかなグラデーションを実現できます。8ビット表示の場合は約1677万色、10ビット表示の場合は、約10億7374万色もの色を再現可能です。」 そこで質問なのですが 上記を読むと、ビット深度は1つの画素で表現できる色の数なので、8ビットという事で、あくまでも1画素で256色表示できるという意味でその画素をいくつか組み合わせる事によって1677万色再現できるという解釈でよいでしょうか? それとも赤・緑・青の各3色について8bitという意味で計24bit。つまり1つの点で1677万7216色表現できるという事でしょうか? でもそれならビット深度24ってことになり8ではないですよね・・・。 非圧縮動画(RGB24)の説明もあり、訳が分からなくなりました・・。 この場合がビット深度24で1つの画素で1677万7216色表現できるという事なのか・・・1つの画素の中でそんな数の色が表現できるものなのか・・・。 すみません。長くなりましたが詳しい方がおられれば、教えていただけると有難いです。