flash as3 remove all children

mheavers picture mheavers · Feb 22, 2011 · Viewed 52.1k times · Source

Isn't there a simple "remove all children" function in flash? I don't understand why this code isn't working. I add children via:

for (var i in project_array[cp].project_type_clips){
        container.header.type_loader.addChildAt(project_array[cp].project_type_clips[i],i);
        loadCount++
    }

and then remove them via:

for (var i in project_array[cp].project_type_clips){
        container.header.type_loader.removeChildAt(i);
    }

But I get an error that the supplied index is out of bounds, and yet one clip is still left on stage. Likewise, if I try to add them without levels, like this:

for (var i in project_array[cp].project_type_clips){
        container.header.type_loader.addChild(project_array[cp].project_type_clips[i]);
        loadCount++
    }

and remove:

for (var i in project_array[cp].project_type_clips){
        container.header.type_loader.removeChild(project_array[cp].project_type_clips[i]);
    }

I get the same error.

Answer

splash picture splash · Feb 22, 2011

Yet another RemoveAllChildren loop:

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