ちょっとハマったのでメモ。
表示リスト上のオブジェクトを一斉に削除しようとして↓みたいな感じで書いたら
function removeDisplayList(container:DisplayObjectContainer):void
{
for (var i:uint=0; i < container.numChildren; i++)
{
container.removeChildAt(numChildren - 1);
}
}
なんかへんな消え方する。
なんとなく規則性があるんで trace してみたら、リスト番号が一つ飛ばしにremoveされてる。なんでじゃー?と思って調べてみたら条件文に numChilren 直接いれちゃうと、削除していくそばから numChilren 自体が減ってっちゃうからだった。考えてみればそうだ、確かに。
ということでfor文の前で一旦総数を変数に保存しとけばいい、ていうまた素人な感じ。
function removeDisplayList(container:DisplayObjectContainer):void
{
var num:int = container.numChildren;
for (var i:uint = 0; i < num; i++)
{
container.removeChildAt(numChildren - 1);
}
}

コメントする