0

我正在尝试删除 MovieClip,但它说 Parameter child must be non-null。

这是我的脚本:

为了在舞台上进行,我使用:

function sayam (e:MouseEvent):void{
    nilai = 8;
    if(nilai == temp) {
    var ssAyam:ayam_mc = new ayam_mc
    stage.addChild(ssAyam);
    ssAyam.x = 350.0;
    ssAyam.y = 330.0;
    ssAyam.width = 170.0;
    ssAyam.height = 170.0;
    ssAyam.instanceName = "Ayam";
    arnam.push("Ayam");
    trace("arnam" +arnam);
    trace(ssAyam.instanceName);
    jual = jual + 4000;
    temp = val[len-(len-len2)]
    len2 = len2 + 1;
    } else {
            money = money - 4000;

        }

    }

因此,我制作了 8 个函数来制作 8 个动画片段以在舞台上显示并将它们推送到数组中。数组是“arnam”。

这是我的删除代码:

function deleteBurger() {
                for(var i:Number=arnam.length; i >= 0; i--){
                        removeChild(arnam[i]);
                        arnam.splice(i,1);
                }
            }

我跟踪了我的数组,它不为空。

有谁能够帮我?谢谢你 :)

4

3 回答 3

2

我喜欢这样做以清零数组并在我这样做时操纵成员:

while( arnam.length )
{
    removeChild( arnam.pop() );
}

现在,我将使用 MovieClips 的向量来进行强类型,而不是数组。并且在尝试删除之前使用 contains() 检查 MovieClip 是否仍在舞台上 :)

于 2013-04-25T11:56:37.697 回答
1

您不应该根据该数组的长度在循环中修改数组,其行为将是不可预测的。

for each(var child:Sprite in arnam){
    stage.removeChild(child);
}
arnam = [];
于 2013-04-25T10:10:29.253 回答
0

尝试这个

for(var i:int=arnam.length-1; i >= 0; i--){
                        removeChild(arnam[i]);
                        arnam.splice(i,1);

                }
于 2013-04-25T10:26:43.603 回答