0

アクションスクリプトは初めてですが、これまでのところ簡単なゲームをほとんど作成していません。私の問題は、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();

}
4

1 に答える 1

1

visible プロパティにタイプミスがあるようです

loader.visble = false;

見えるのではなく見えるべきです。

表示されている限り、ReferenceError がスローされます。

于 2013-03-20T07:41:38.903 に答える