【问题标题】:Parent suddenly becomes null as3父母突然变成空 as3
【发布时间】:2013-02-15 06:21:22
【问题描述】:

几个月前我刚刚学习了 AS3,如果这对你来说听起来很新手,我很抱歉。

这是我的问题。我去使用removeChild,但是有一个错误说: ArgumentError:错误 #2025:提供的 DisplayObject 必须是调用者的子对象。

所以,我追踪了父级,它是“null”。但是当我试图追踪我拥有的每个对象的父对象时,结果还不错。那为什么突然变成null了?并且随机!你知道如何纠正这个吗?谢谢。

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    仅供参考,我认为你有一个小错误。

    下面的代码相同的错误。

    ArgumentError:错误 #2025:提供的 DisplayObject 必须是调用者的子对象。

    这是你的情况?

    var mc:MovieClip = new MovieClip();
    addChild(mc);
    var childMc:MovieClip = new MovieClip();
    mc.addChild(childMc);
    
    //this line wrong.
    stage.removeChild(childMc);
    

    如果您遇到这种情况,请将stage.removeChild(childMc); 更改为mc.removeChild(childMc);

    removeChild() 表示从 DisplayObjectContainer 实例的子列表中删除指定的子 DisplayObject 实例。如parent.removeChild(child);

    stagechildMc 父级的父级。

    mcchildMc 父级。

    还是这种情况?

    var mc:MovieClip = new MovieClip();
    addChild(mc);
    var childMc:MovieClip = new MovieClip();
    mc.addChild(childMc);
    
    stage.removeChild(mc);
    while(mc.numChildren)
    {
        mc.removeChildAt(0);
    }
    

    如果是这种情况,mc 会被这一行删除 stage.removeChild(mc); 试图 mc child removeChild。已删除 mc,因此发生错误。 child 必须从最下方移除。

    改成

    while(mc.numChildren)
    {
        mc.removeChildAt(0);
    }
    stage.removeChild(mc);
    

    如果你想清楚地回答。必须附上代码。

    【讨论】:

      【解决方案2】:

      以下是我防范错误 #2025 的方法:

      if ( container.contains( displayObject ) )
          container.removeChild( displayObject );
      

      但一般来说,请务必只删除您之前添加的 DisplayObject。

      【讨论】:

        【解决方案3】:

        在调用 removeChild 之前,您是否在任何地方使用过 addChild?

        孩子应该在您调用 removeChild 的父母的显示列表中。

        只要不在舞台上,父级始终为空。

        【讨论】:

          【解决方案4】:

          如果你想在不记得它的父对象是什么的情况下随意删除孩子,你可以这样做:

          if( child.parent )  child.parent.removeChild( child );
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-07
            相关资源
            最近更新 更多