0

MovieClip を削除しようとしていますが、パラメーターの子は 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);
                }
            }

配列をトレースしましたが、null ではありません。

誰でも私を助けることができますか?ありがとうございました :)

4

3 に答える 3

2

私は配列をゼロにしてメンバーを操作するためにこれを行うのが好きです:

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

ここで、Array ではなく、MovieClipsのVectorを使用して厳密に型指定します。また、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 に答える