0

Child を削除しようとすると、エラーが表示されます。指定された DisplayObject は、呼び出し元の子である必要があります。ここstackoverflowで見つけたさまざまな方法をたくさん試しましたが、どれもうまくいきませんでした。

if(player.hitTestObject(activePowerup as DisplayObject)
{
    activePowerup.onPlayerPick(player);
    this.parent.removeChild(activePowerup as DisplayObject);
    activePowerups.splice(activePowerup, 1);
}

何が問題なのかわかりませんが、助けていただければ幸いです。

4

1 に答える 1

1

あなたactivePowerupが間違いなくの子である場合this.parent、問題はあなたのスプライスにあると思います。であると仮定するactivePowerupsと、Array期待どおりにsplice()機能しません(ここのドキュメントを参照してください)。splice()あなたはのインデックスを与える必要がありますactivePowerup

activePowerups.splice(activePowerups.indexOf(activePowerup), 1);

そうしないと、間違った電源投入をつなぎ合わせて、次にこのコードを実行するときに同じ子を2回削除しようとしている可能性があります。

于 2013-03-16T19:43:49.987 に答える