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:

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

複数の項目を削除する場合は、 for each ループを使用します。これは、子コンテナーを削除するたびに、それに含まれる他の子のインデックスが再作成されるためです。

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

1つのアイテムだけを削除したい場合は、次のように実行できます

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 に答える