負のdepthを持つMovieClipのremove [ Flash ]
既出かもしれないがとりあえずメモ。
MovieClipの深度範囲は、-16384 から 1048575 まで割り当てることができるのだけど、depthに負の値を割りあてたMovieClipは外からも中からも消去できなくなる。
なんだろう?これ今まであまり気にしたことなかったけど、結構負の深度使ってる気がする。なんか嫌な予感。というかなんかイージーミスかな?
bt_make.onRelease = function() { _root.attachMovie("dev_sample", "ins1", -1); }; bt_remove.onRelease = function() { ins1.removeMovieClip(); }; bt_move.onRelease = function() { ins1._x += 100; };
ただし、通常参照には問題なさげ。とりあえずremoveMovieはできない。この辺の深度をスプライト系に使用しようとしていた野望が思いもかけないところで崩れた・・・(;´Д`)

コメント
負の深度はオーサリングツール上で配置したMCとかに予約されるためです。ステージに手で置いたMCがremoveできないのもこの理屈です。
そう、まるで人生のように[謎]。
ちなみに-16385は背景色を表示するのに使います。確か。
投稿者: Muroicci | 2005年04月04日 22:41
初めまして。いつも楽しく読ませていただいてますです。
負の深度は、オーサリング時に配置したmc用に用意されていたものと記憶しています。removeMovieClipとかも深度がマイナスかプラスかで消せるか消せないかを判断しているようです。
なので逆に言えば、オーサリング時に配置したmcでもswapDepths()で深度をプラスにすれば消せるし、ランタイム時に配置したmcでも深度をマイナスにすれば消せなくなるっていう技も使えます。(使えたからなんだっていう話ですが・・・)
別に解決になってないですが・・・知ってたらすいません(^^;
投稿者: みやっち | 2005年04月04日 22:55
うあ?かぶった!タイムスタンプとかからメッチャ検証しながら書き込んだ事がバレてしまう・・・。
投稿者: みやっち | 2005年04月04日 23:00
おおー、すげえ。即効で2つもお返事きちゃったw
ありがとうございます。
なるほど、そういうことなのですね。
ということは深度にマイナスを任意で使うと手で置いたものと内部的にバッティングしてしまったりしてよろしくないのだろうか?
>オーサリング時に配置したmcでもswapDepths()で深度をプラスにすれば消せるし、ランタイム時に配置したmcでも深度をマイナスにすれば消せなくなるっていう技も使えます。
これは実は結構使えそうです。ウヒヒ
ありがとございますw
投稿者: +39 | 2005年04月04日 23:41
>この辺の深度をスプライト系に使用しようとしていた野望
コメント欄にコードかけるかわからなかったので、自分のとこに書いてしまいましたが、
↓みたいなので、removeMovieClipからマイナス深度のMCを消せるようになりますよ :-)
http://www.fladdict.net/blog-jp/archives/2005/04/post_15.php
投稿者: Taka | 2005年04月05日 06:04
おお、なんかすいませんw
しかしこうなると"getNextHighestDepth"の反対の"getNextLowestDepth"とかほしいなあ・・・w
ちょっと作っとくかな。
投稿者: +39 | 2005年04月05日 11:45