0

我遇到了问题,每当我尝试从数组中删除一个元素时,它都会出现此错误 #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]);
        }


    }
4

2 回答 2

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);
}

希望有帮助

于 2012-05-28T12:05:52.943 回答
0

不要for只使用:

this.removeChild(itemS[checkRemove]);
于 2012-05-28T11:55:15.210 回答