ActionScript2.9(以下AS2)の深度に関するメモ。
ActionScript2.0はムービークリップの重なりを深度で管理しており、大きい深度を持つムービークリップを手前に表示する。
attachMovieで生成したムービークリップ*はremoveMovieClipで削除する**。
注意する点として深度がマイナスのムービークリップはremoveMovieClipで削除できない。
オーサリング時に配置したムービークリップはマイナスの深度が与えられる。removeMovieClipはattachMovieで生成したムービークリップを削除するメソッドであり、
マイナスの深度を持つ-つまりオーサリング時に配置した-ムービークリップの削除は想定していない。
attachMovieで生成したムービークリップがマイナスの深度を持つ場合はswapDepthsなどを使いプラスの深度を割り当てる必要がある。
最大の深度 + 1を返すメソッドgetNextHighestDepthが用意されている。
しかしFlashコンポーネントを利用するとgetNextHighestDepthの値が1048576になる。スクリプトで深度に設定できる値は-16384から1048575までと決まっているためgetNextHighestDepthで返った値をモービークリップに設定してもremoveMovieClipでは削除できない(深度が変更されていない)。
解決策として利用されることがないであろう大きな数字をswapDepthsに直接記載する。
下記サイトでFlashコンポーネントと深度の関係が分かりやすく解説されている。
»F-site | 意外と使えないMovieClip.getNextHighestDepth()
*attachMovieクリップは引数に深度をとる。
**removeMovieClip : ActionScript2.0
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。