我正在寻找一种解决方案,从as3中的舞台中删除动画片段列表。我有一个将动画片段添加到数组并制作一个循环,如果它们存在则删除它们中的每一个。我必须包含 if contains ,因为它在没有它的情况下发回给我:“错误#2025:提供的DisplayObject必须是调用者的子节点。”
var array: Array = new Array;
var symbol1: MovieClip = new Symbol1;
var symbol2: MovieClip = new Symbol1;
array.push(symbol1);
array.push(symbol2);
stage.addChild(array[1]);
for (var i = 0; i < array.length; i++) {
if (contains(array[i])) {
stage.removeChild(array[i]);
trace("removed symbol[i]");
}
}
我使用的数组错了吗?
答案 0 :(得分:1)
尝试使用stage.contains(array [i])
答案 1 :(得分:0)
对于更多模块化代码(无论父代都可以重用),请尝试这样做:
for (var i = 0; i < array.length; i++) {
if (array[i].parent) { //check to see if this item has a parent
array[i].parent.removeChild(array[i]); //tell the parent to remove this child
trace("removed symbol [i]");
}
}
这样,如果您稍后决定将所有项目放在容器而不是舞台上,则无需更改代码。