ActionScript 3 和运行时资源

ActionScript 3 & Runtime Resources

所以,我一直在 AS3 中从事一个项目,我遇到了另一种奇怪的行为。

背景:这是一款回合制游戏。过去一周我一直在优化它,现在它 运行 就像黄油一样(始终如一!);

问题: 然而,当我尝试从已保存的游戏继续玩时,运行不太稳定。具体来说,它会 运行 前几圈正常,然后它会开始性能急剧下降,直到它冻结我的电脑。请注意,这只会在战斗中发生,不会在菜单或任何其他时间发生。

是否缺少有关 Actionscript 的内容?我使用内置的 SharedObject class 通过 cookie 保存游戏。我用来保存和加载数据的代码如下(我也使用字节数组 class)。

public static function saveGame():void
{
    /// save the game using byte array
    registerClassAlias("Mob", Mob);
    registerClassAlias("Skill", Skill);
    var ba:ByteArray = new ByteArray();
    var savedData:* = Main.glblPlayer.setSaveObject(); 
    ba.writeObject(savedData);
    ba.position = 0; 
    so.data.game5 = ba; 
    so.flush();
}

public static function loadGame():Boolean
{
    if (so.data.hasOwnProperty("game5"))
    {
        var ba:ByteArray = new ByteArray();
        ba = so.data.game5;
        ba.position = 0;
        var loadedData:Object = ba.readObject();
        glblPlayer.loadSaveObject( loadedData ); 

        return true; 
    }
    else
    {
        so.data.game = new Object();
        return false; 
    }
}

我只是仔细检查了上面的代码,并对其进行了一些变体测试。如果它加载 1-3 次,那没问题,但之后每回合在战斗中性能都会下降。我不知道 ActionScript 的技术内容是如何工作的,也不知道它是如何节省资源的,除了它是 cookie 并且它在缓存中。

任何人都可以进一步了解如何在 AS3 中完成 saving/loading Flash 游戏吗?还是只有 "use sharedObject"?

使用探查器(如 Adob​​e scout)查看导致问题的原因。

如果我不得不猜测,那是因为您的(反)序列化例程无法正常工作并且存在内存泄漏。但是再次争论这个问题或查看代码想知道可能是什么问题是毫无意义的。使用探查器来准确查看问题所在。