コンテナ内の全ての子 DisplayObject を削除する方法

May 08, 2008category: Flash 

久々の Flash プロジェクトで ActionScript 3.0 のキャッチアップに忙しい。下手に ActionScript 2.0 を知っていると、逆にラーニングコストが上がる気がする。

さて本題。コンテナ内の全ての子 DisplayObject を削除するには、幾つか方法がある。Essential ActionScript 3.0 の P.477 より。

ボトムアップ法

底辺の DisplayObject から消していく方法。だるま落としのイメージに近い。

while (numChildren > 0) {
  removeChildAt(0);
}

while を for に書き直すと見慣れないコードになる。

for (;numChildren > 0;) {
  removeChildAt(0);
}

トップダウン法

上から取り除いていく方法。

while (numChildren > 0) {
  removeChildAt(numChildren - 1);
}

これはひどいコード。やってはいけない

深度と子の数は動的に変化する。よって以下のコードでは削除漏れが発生する。

for (var i:int = 0; i < numChildren; i++) {
  removeChildAt(i);
}

comments (0)このエントリーを含むはてなブックマークはてなブックマーク - コンテナ内の全ての子 DisplayObject を削除する方法

comments