私の非常に短いミニゲームでは、ステージ上に 4 つのオブジェクトがあります。ゲームが終了したら、それらをすべてステージから削除して、ゲームを再開したいと考えています。
このように設定しました(ほとんどのビットが取り出されました)
function mainGame():void {
var theCoin:coin = new coin();
var cupOne:cup = new cup();
var cupTwo:cup = new cup();
var cupThree:cup = new cup();
stage.addChild(theCoin);
trace(theCoin.parent);
stage.addChild(cupOne);
trace(cupOne.parent);
stage.addChild(cupTwo);
trace(cupTwo.parent);
stage.addChild(cupThree);
trace(cupThree.parent);
function prepReset():void
{
cupOne.removeEventListener(MouseEvent.CLICK, liftCup1);
cupTwo.removeEventListener(MouseEvent.CLICK, liftCup2);
cupThree.removeEventListener(MouseEvent.CLICK, liftCup3);
stage.addChild(resetBtn);
resetBtn.addEventListener(MouseEvent.CLICK, resetGame);
}
function resetGame(event:MouseEvent):void
{
stage.removeChild(cupOne);
stage.removeChild(cupTwo);
stage.removeChild(cupThree);
letsgoagain();
}
} // end mainGame
function letsgoagain():void
{
stage.removeChild(resetBtn);
mainGame();
trace("RESET")
}
これはすべて、最初は正常に機能します。2回目にリセットすると、
Game Started
[object Stage]
[object Stage]
[object Stage]
[object Stage]
RESET
[object Stage]
[object Stage]
[object Stage]
[object Stage]
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/removeChild()
at Function/coinGame/$construct/mainGame/resetGame()[*\coinGame.as:147]
Cannot display source code at this location.
親は引き続きステージですが、stage.removeChild は正しい構文ではありませんか? 理解できません。Stackoverflow、親切に私を正しい方向に向けてください。