2005年 01月 31日
Flashの機能(ムービークリップの複製と深度)のメモ
自分で忘れないようにするためのメモです。



アクションスクリプトでムービークリップをコピーして複製した場合に、

「複製するファイル名、複製されるファイル名、深度」を決める。

普段、深度は自動的に割り当てられるが(負の値)、

複製する場合に限り、0以上の値を自分で割り当てる。



ここで、for文などを使って、

for(i=2;i<9;i++){
duplicateMovieClip ("_root.bglf1","bglf"+ i, i);
}
for(j=2;j<9;j++){
duplicateMovieClip ("_root.bglfr1","bglfr"+ j, j);


などと書いてみる。

実行されると「bglf1~bglf8」と「bglfr1~bglfr8」までが深度2~8に生成される。

上と下のfor文で違うのは、複製するファイル名と、複製されるファイル名であって、

一番最後の深度は、文字が違う(iとj)だけで、同じ数値が入る。

その為、上のfor文で生成されたモノと、下のfor文で生成されたモノは、同じ深度に存在することになる。が、

Flashの仕様で、一つの深度には一つのものしか存在できないというのがあるらしい。

必ず全てのモノに対して前後関係が存在する(どっちかが前で、どっちかが後ろ)



つまり、上の2つのfor文で生成されたモノは、正しく動作しない。というか、しなくて困った(ぉ)

簡単な改善策としては、深度が違えばいいわけで、

for(i=2;i<9;i++){
duplicateMovieClip ("_root.bglf1","bglf"+ i, i);
}
for(j=2;j<9;j++){
duplicateMovieClip ("_root.bglfr1","bglfr"+ j, i+j);


というように、お互いの深度を干渉しないような数値を入れれば良い。

これでbglfの方が深度2~8、bglfrの方が深度10(11?)~16(17?)までに配置され

ちゃんと動作しますた。ヨカタヨ。
[PR]

by riza_59 | 2005-01-31 11:45 | Flash


<< さみゅい      ワールドレコーズ >>