ステージ上のムービークリップをremoveMovieClipする方法

removeMovieClipで消せるのは、createEmptyMovieClipやattachMovie、 duplidateMovieClipで生成したMCだけだと思われがちですが、手動でステージ上に配置したMCもremoveMovieClipする方 法があります。

ステージ配置したMCが何故消せなかったかというと、そのMCが-16,383の負のレベルに配置されていたからで、removeMovieClipは正のレベルにあるMCしか消せないためでした。
そこで、その負のレベルのMCをswapDepthsで正のレベルに配置し直せばオッケー。

ステージ上に配置したMCのインスタンス名をmyMcとすると、

myMc.swapDepths(_root.getNextHighestDepth());
myMc.removeMovieClip();


で消すことができます。

注意点は、removeMovieClipはレベル1,048,575以上は効かないです。通常作業ではgetNextHighestDepth ()しまくっても、なかなかそこまで使わないと思いますが、コンポーネントを使った時にレベル1,048,575を超えることがあります。厄介なのはコン ポーネントをステージ配置していなくても、ライブラリにあるだけで、そのレベルを使ってしまう可能性があるということ。なので、コンポーネントを使う場合 でremoveMovieClipの挙動が想定外の場合は、getNextHighestDepthなりで、レベルを調べて、下のレベルに swapDepthsしてやりましょう。