アクションスクリプトは初めてですが、これまでのところ簡単なゲームをほとんど作成していません。私の問題は、testForEnd()
関数を呼び出すと、その画面からローダーの画像が消えず、そのために GAME END 画面が表示されないことです。removeChild()
それが私の問題を解決することを期待して、私はいくつかの調査を行いましたが、うまくいきませんでした。どんな助けでも大歓迎です!
function testForEnd():void
{
if ( score > level*30)
{
level++;
level_txt.text = String(level);
req = new URLRequest("images/" +imageNumber + ".jpg");
loader = new Loader();
imageNumber++;
loader.load(req);
addChildAt(loader,getChildIndex(settingMenu));
if( imageNumber >= 20 ) {
imageNumber = 0;
}
var tempLevelUp:LevelUp = new LevelUp();
addChild(tempLevelUp);
tempLevelUp.x = stage.stageWidth / 2 - tempLevelUp.width / 2
tempLevelUp.y = stage.stageHeight / 2 - tempLevelUp.height / 2
if (tempLevelUp.currentFrame >= tempLevelUp.totalFrames)
{
removeChild(tempLevelUp);
}
}
if (lives == 0) {
gameState = STATE_END_GAME;
}
//gameState = STATE_END_GAME;
trace(gameState);
}
function endGame():void
{
removeGame();
endScreen.visible = true;
// this is where it doesn't work loader visible
loader.visible = false;
// also i tried removeChild which didn't work
removeChild(loader);
removeEventListener(Event.ENTER_FRAME, gameLoop);
showResults();
}
function removeGame():void
{
// gameState = STATE_END_GAME;
for (var i:int = enemies.length-1; i>=0; i--)
{
removeEnemy(i);
}
for (var j:int = Lasers.length - 1; j >=0; j--)
{
removeLaser(j);
}
for (var k:int = explosions.length - 1; k >=0; k--)
{
removeExplosion(k);
}
removeChild(player);
laserTimer.stop();
}