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

时间:2012-05-28 11:50:17

标签: actionscript

我遇到了问题,每当我尝试从数组中删除一个元素时,都会出现此错误#2025。当我点击它时,该对象在舞台上不可见,但它总是会出现此错误。

//remove items  inventory 
    public function RemoveObject(mc:MovieClip)
    {
        var checkRemove:Number = curSlot - 1;
        trace("current slot " + (curSlot-1));
        trace("current pos array" + myIndex);

        for(var i:int = 0; i < itemS.length;i++)  {
            this.removeChild(itemS[checkRemove]);
        }


    }

2 个答案:

答案 0 :(得分:0)

不要只使用for

this.removeChild(itemS[checkRemove]);

答案 1 :(得分:0)

如果要删除多个项目,请使用每个循环,因为除非删除子容器,否则会重新索引它包含的其他子项。

for each (var child:DisplayObject in this.getChildren()) {
    this.removeChild(child);
}

如果您只想删除一个项目,那么可以将其作为

完成
this.removeChild(this.getChildAt(childIndex));

Container的以下方法也有助于获得欲望的孩子

getChildByName(name:String):DisplayObject
getChildIndex(child:DisplayObject):int

最好先检查一下你要移除的孩子是否在容器中

var child:DispalyObject = this.getChildAt(childIndex);

if(this.contains(child))
{
  this.removeChild(child);
}

希望有所帮助