【发布时间】:2013-10-30 13:39:47
【问题描述】:
我正在尝试从容器中删除多个 mc。为什么容器也被移除了?
///breadcrumbs
var randomMc:Number = Math.floor(Math.random()*myArray.length);
var mc:MovieClip = new myArray[randomMc];
MapHolder.addChild(mc);
mc.x = MapHolder.Star.x;
mc.y = MapHolder.Star.y;
/// remove breadcrumbs ///
function removeAllChildren(MapHolder:DisplayObjectContainer)
{
while(MapHolder.numChildren > 0)
{
MapHolder.removeChild(MapHolder.getChildAt(0));
}
}
//////
我想我解决了我的问题....由于孩子在容器中...它需要是索引 1 吗?
function removeAllChildren(DisplayObjectContainer):void
{
while(MapHolder.numChildren > 1) {
MapHolder.removeChildAt(1);
}
}
【问题讨论】:
-
根据我们可以看到的代码,此代码不会删除 MapHolder。如果它被删除,它正在其他地方完成,或者您没有正确理解一些基本的东西,导致您相信它已被删除。仅查看此代码并给出您当前对问题的描述,很难判断。正如当前答案所指出的那样,您没有正确地将剪辑分配给
mc,因此其他地方也可能存在更多类似的错误。 -
我试图从新的 myArray[randomMc] 中取出那个“新的”;但它会导致错误。我正在放置随机剪辑 mc1 或 mc2。我只是想在调用 removeAllChildren(MapHolder); 时删除所有面包屑;
-
如果您认为我的第一条评论并没有要求我们在这个问题中看到的更多内容,我无法帮助您。您对答案的评论证实了我的怀疑,即您认为某些幻像代码不是问题……但确实如此。抱歉,帮不了你。
-
例如.. 在删除
new关键字后,任何人都可以帮助您解决新错误,这是一个需要揭开的谜团。数组中有什么?向我们展示填充该数组的代码,这样我们就可以确认其中的内容而不是假设。 -
没关系。我解决了....但是代码在这里... //// 面包屑 /////////// var myArray:Array = [mc1,mc2]; ///breadcrumbs var randomMc:Number = Math.floor(Math.random()*myArray.length); var mc:MovieClip = new myArray[randomMc]; MapHolder.addChild(mc); //// 有人建议我删除“新”...但这导致了错误。我解决了上面提到的我原来的问题。谢谢
标签: actionscript-3 removechild addchild