删除所有数组影片剪辑上的子项
Posted
技术标签:
【中文标题】删除所有数组影片剪辑上的子项【英文标题】:Remove child on all array movieclips 【发布时间】:2014-06-30 20:32:03 【问题描述】:我正在寻找一种解决方案来从 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]");
我是不是用错了数组?
【问题讨论】:
【参考方案1】:试试 stage.contains(array[i])
【讨论】:
【参考方案2】:对于更模块化的代码(无论父级都可以重用),尝试这样做:
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]");
这样,如果您稍后决定将所有项目放在容器中而不是舞台中,则无需更改代码。
【讨论】:
以上是关于删除所有数组影片剪辑上的子项的主要内容,如果未能解决你的问题,请参考以下文章
as3 以普通影片剪辑的形式访问子项(gotoAndPlay 等)