【问题标题】:removechild also removing container ? as3removechild 也删除容器? as3
【发布时间】: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


【解决方案1】:

这一行在这里:

var mc:MovieClip =  new myArray[randomMc];

你不能这样做,你不能从你可能的意思已经存在的元素中创建一个新元素

var mc:MovieClip = myArray[randomMC];

干杯

【讨论】:

  • 当我把那个“新”拿出来时,它给了我一个错误。我只是留下随机 mc1 或 mc2 的踪迹。我想我的函数调用有问题。因为它正在删除容器 mc。 TypeError:错误 #1034:类型强制失败:无法将 mc1$ 转换为 flash.display.MovieClip。在 test_fla::MainTimeline/circleHit()
  • 当我取出 "new" 时导致错误。我认为问题是当我调用函数 removeAllChildren(MapHolder);
  • Coericion Failed 表示您正在尝试将变量从 A 类型转换为 B 类型。这意味着该数组不是包含 MovieClip 实例,而是包含其他内容。使用跟踪();命令找出 lts 正在发生的事情!
猜你喜欢
  • 2012-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-11
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2019-05-12
相关资源
最近更新 更多