【问题标题】:Flash game - returning to main menuFlash 游戏 - 返回主菜单
【发布时间】:2012-11-22 04:10:55
【问题描述】:

我正在开发一款 Flash 游戏,并且即将完成,但我遇到了问题。当游戏结束或用户按下“结束游戏”按钮时,我想将它们返回到主菜单。游戏设置为主菜单在第 3 帧,游戏在第 4 帧运行。所有的游戏代码都在那里。

我尝试过的一些事情: 我只是试图返回到第三帧。这会导致错误:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at Hundred_fla::MainTimeline/GotoEndGame()[Hundred_fla.MainTimeline::frame5:66]

我尝试将所有游戏变量恢复为默认值,删除所有子项...等等...我也遇到了完全相同的错误...不确定问题出在哪里。我认为一种解决方案是重新加载电影,但这将在 Android/IOS 上运行,我无法刷新网页。 ... 任何帮助将不胜感激。谢谢

编辑:第 66 行的代码是:

while(stage.numChildren > 0){
    stage.removeChildAt(stage.numChildren-1);
}

【问题讨论】:

    标签: android ios actionscript-3 flash


    【解决方案1】:

    您应该先锁定阶段链接,然后再尝试清除其中的对象。您似乎正在删除运行代码的实例,因此它会丢失阶段引用。

    var theStage:Stage=stage;
    while(theStage.numChildren > 0){
        theStage.removeChildAt(0); 
        //you can always be sure that element at [0] exists, rather than going for [numChildren-1]
    }
    

    【讨论】:

    • 这似乎解决了它!谢谢!
    【解决方案2】:

    根据第 5 帧的第 66 行,可能有几件事:

    • 您的目标是 Flash Player 9,其中显示对象与您的 gotoAndStop 调用异步加载,因此您最终会得到空引用。解决方案是针对 Flash Player 10 或 11(在 Publish Settings [Ctrl+Shift+F12] 中更改它)。如果你真的需要针对 Flash Player 9,有convoluted methods to ensure the attributes are accessible

    • gotoAndStop 之后,您从第 5 帧开始引用一个对象,该对象不再可用,因此引发空对象引用错误

    • 这是您的逻辑错误,我们需要查看一些代码才能找到它

    如有疑问,最好将gotoAndStop 调用保留为方法中的最后一个调用。

    编辑:

    看到代码后,似乎stage本身为null,从而抛出错误。如果没有明显的区别,你可以用 try/catch 包围你的代码:

    try {
        while(stage.numChildren){
            stage.removeChildAt(0);
        }
    } catch (error:Error) {
    }
    

    还可以尝试侦听ADDED_TO_STAGE 事件,以确保您在访问之前拥有对stage 的有效引用。

    【讨论】:

    • 感谢您的回复。该特定内容中的 66 处的代码已添加到帖子中。我看到我在为 flash 10+ 构建时没有收到任何错误,但我需要为 IOS 和 Android 构建它。这会导致错误:-( 目前 endgame 方法中唯一的代码是我在上面添加的第 66 行开始的代码。再次感谢,我真的需要帮助!!
    • 我认为这是第二期的情况。您是否尝试在 使用 gotoAndStop 移动框架头之前放置此代码?
    • 好吧,问题是即使 gotoAndStop 调用被注释掉,我也会收到错误消息。但无论哪种方式,我都尝试过将 gotoAndStop 作为方法的最后一行。
    • 哦,对上述内容进行更正。我看到在 Flash 10.3 中我仍然遇到同样的错误,它只是不是“显示停止器”,而是只显示在输出窗口中......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多