使用 AS3 在闪存 cs6 中键入错误 #1009



我实际上是在尝试检查游戏的分数是否是高分。如果是,分数将被添加到排行榜中。但是我收到此错误:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at FlashGame_fla::MainTimeline/checkBananaHS()

在我的游戏中,在那个特定的帧中,这是链接到checkBananaHS()的代码:

function rpslsWon():void 
{
    gameOverBananaMC.visible = true;
    bananaWinLose.visible = true;
    bananaWinLose.text = "Kampai " + cPlayerData.pName + "! You are totally bananas!! nYour Score: " + pBananaScore;
    toMenuBtn.visible = true;
    rollAgainBtn.visible = true;
    toMenuBtn.addEventListener(MouseEvent.CLICK, Click_backtoMain);
    rollAgainBtn.addEventListener(MouseEvent.CLICK, backtoBanana);
    saveItBtn.addEventListener(MouseEvent.CLICK, checkBananaHS);
    cPlayerData.pBananaScore = pBananaScore;
    saveData();
    tracePlayerData();
}

这是高分框架中的一段代码:

var rpslsHighScore:int;
var rpslsHSName:String;
rpslsHighScore = 0;
rpslsHSName = "";
//rpslsHighScore = 0;
bananaWinnerDisplay.text = " ";
bananaScoreDisplay.text = "0";
function checkBananaHS(event:MouseEvent):void
{
    if ((cPlayerData.pBananaScore > rpslsHighScore || 
    rpslsHighScore == 0) && cPlayerData.pBananaScore > 0)
    {
        trace("There's a new high score for Banana");
        rpslsHighScore = cPlayerData.pBananaScore;
        rpslsHSName = cPlayerData.pName;
        bananaScoreDisplay.text = "" + rpslsHighScore;
        bananaWinnerDisplay.text = rpslsHSName;
        saveData();
    }
}

我只是无法修复错误。谁能帮我?多谢!

调用checkBananaHS()中的一个变量时未设置。因此,当您尝试访问该对象的属性时,它会出错,因为不存在任何内容。

考虑到这一点,这意味着尚未在函数中设置以下对象之一:

  • cPlayerData
  • bananaScoreDisplay
  • bananaWinnerDisplay

在函数开始时对其中的每一个运行跟踪,一次一个,看看哪个不返回[Object object]

最新更新