- 2006-04-27 (木)
- action script
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してやりましょう。
- Newer: Extending Ajax with Adobe Flex
- Older: 頻出英単語帳 in Flash
Comment:2
- joy 2008-03-27 (木) 09:24
-
おー、
巷の溢れる、教科書の定説を覆す、検証活動、感服いたしました! - No Name 2008-03-27 (木) 10:13
-
>joy様
コメントありがとうございます!
でもこの検証、とても僕一人で気づけるわけもなく、たぶん何か外国の記事見て検証したものだと思います。ソース忘れてしまいましたが。
今後ともよろしくお願いいたします。
Trackback:0
- TrackBack URL for this entry
- http://www.trick7.com/blog/mt-tb.cgi/72
- Listed below are links to weblogs that reference
- ステージ上のムービークリップをremoveMovieClipする方法 from trick7.com blog




