ActionScript2.0の深度に関する注意点 : ActionScript2.0

Pocket

ActionScript2.9(以下AS2)の深度に関するメモ。

ActionScript2.0はムービークリップの重なりを深度で管理しており、大きい深度を持つムービークリップを手前に表示する。

深度とremoveMovieClipメソッド

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.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。