【问题标题】:The supplied DisplayObject must be a child of the caller提供的 DisplayObject 必须是调用者的子对象
【发布时间】:2013-04-18 11:23:54
【问题描述】:

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

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

我跟踪了对象的父对象 (grace),它返回为 null。这让我发疯,非常感谢您的帮助!

【问题讨论】:

    标签: actionscript removechild


    【解决方案1】:

    虽然最可能的问题似乎是您正在将一个值存储到正在被垃圾收集/删除的优雅中,但问题尚不清楚。

    如果你在函数内部创建了一个变量,但在函数外部没有对该变量的引用,它将被 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]
    

    【讨论】:

      猜你喜欢
      • 2012-04-15
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多