有问题从舞台上卸下装载机

时间:2013-03-20 07:23:11

标签: actionscript-3 flash

我是Action脚本的新手,但到目前为止几乎是一个简单的游戏。我的问题是,当我调用我的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();

}

1 个答案:

答案 0 :(得分:1)

您似乎在可见属性上输了一个错误

loader.visble = false;

应该是可见的而不是可见的。

只要您将其显示为可见,就会引发ReferenceError。