提供的DisplayObject必须是调用者的子级

时间:2013-04-24 18:53:18

标签: actionscript removechild

是的,我知道这个问题一直都会被问到,但是我的经验不足使我无法找到答案。如果点击一个按钮,我只是想从屏幕上删除一个对象 -

    public function but1click(evtObj:MouseEvent)
    {
        trace("button one clicked");
        if (gracestate == "grace")
        {
            removeChild(grace);
        trace("grace removed");
                }
    }

我跟踪了对象的父级(宽限期),它返回为null。这让我疯了,非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

问题尚不清楚,尽管最可能的问题似乎是你正在将值存储到正在被垃圾收集/删除的恩典中。

如果在函数内部创建变量但在函数外部不存在对该变量的引用,则它将是GC' d。基本上任何不被其他东西引用的东西都会被删除,唯一不对的是时间轴。这会阻止Flash播放器滞后,并在RAM变满时避免错误。因此:

    function createGrace () {
      var grace = new Object();
      addChild(grace);
    }
    trace (grace); // returns null

    var grace:Object;
    function createGrace () {
      grace = new Object();
      addChild(grace);
    }
    trace (grace); // returns [Object]