【问题标题】:Type Error #1009 in flash cs6 using AS3在使用 AS3 的 flash cs6 中键入错误 #1009
【发布时间】:2013-11-03 12:56:48
【问题描述】:

我实际上是在尝试检查游戏的分数是否为高分。然后如果是,分数将被添加到排行榜中。 但是我得到了这个错误:

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();
    }

}

我只是无法修复错误。谁能帮我吗?非常感谢!

【问题讨论】:

    标签: actionscript-3 flash typeerror flash-cs6


    【解决方案1】:

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

    请记住,这意味着您的函数中尚未设置以下对象之一:

    • cPlayerData
    • bananaScoreDisplay
    • bananaWinnerDisplay

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

    【讨论】:

    • 是的,我在 Flash 中运行了调试工具,它把我带到了这一行 bananScoreDisplay.text = "" + rpslsHighScore;这是什么意思?
    • banadaScroreDisplay 尚未设置(而是bananaScoreDisplay = null)。如果它不为 null,它将接受该值,即使 rpslsHighScore 为 null/NaN
    • 表示对象,bananaScoreDisplay还没有被创建?
    • 是的。没有为变量分配对象。
    • 嗯.. 但我做到了。 bananaScoreDisplay 实际上是一个文本框,动态文本。这是此动态文本框的实例名称。我真的不知道怎么了:(
    猜你喜欢
    • 2012-08-05
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多