mhe*_*ers 10 flash children actionscript-3
在flash中是不是有一个简单的"删除所有孩子"功能?我不明白为什么这段代码不起作用.我通过以下方式添加儿
for (var i in project_array[cp].project_type_clips){
container.header.type_loader.addChildAt(project_array[cp].project_type_clips[i],i);
loadCount++
}
Run Code Online (Sandbox Code Playgroud)
然后通过以下方式删除它们
for (var i in project_array[cp].project_type_clips){
container.header.type_loader.removeChildAt(i);
}
Run Code Online (Sandbox Code Playgroud)
但是我得到一个错误,提供的索引超出范围,但是一个剪辑仍然在舞台上.同样,如果我尝试添加它们没有级别,像这样:
for (var i in project_array[cp].project_type_clips){
container.header.type_loader.addChild(project_array[cp].project_type_clips[i]);
loadCount++
}
Run Code Online (Sandbox Code Playgroud)
并删除:
for (var i in project_array[cp].project_type_clips){
container.header.type_loader.removeChild(project_array[cp].project_type_clips[i]);
}
Run Code Online (Sandbox Code Playgroud)
我犯了同样的错误.
spl*_*ash 46
另一个RemoveAllChildren循环:
while (container.numChildren > 0) {
container.removeChildAt(0);
}
Run Code Online (Sandbox Code Playgroud)
删除对象时,其他子项的childIndex将被更改.因此,您无法使用i的增加值删除子项,但必须从numChildren-1开始然后减少:
for (var i:int = obj.numChildren-1; i >= 0; i--) {
obj.removeChildAt (i);
}
Run Code Online (Sandbox Code Playgroud)
应该管用.