所以,我一直在AS3中開展一個項目,並且遇到了另一個奇怪的行爲。ActionScript 3和運行時資源
背景:這是一個基於原來的遊戲。過去一週我一直在優化它,現在它運行得像黃油(一貫!);
問題:但是,當我嘗試從已保存的遊戲中繼續玩遊戲時,遊戲運行不太穩定。具體來說,它會正常運行前幾圈,然後性能會急劇下降,直到它凍結我的電腦。請注意,這隻發生在戰鬥期間,而不是在菜單期間或任何其他時間。
有什麼關於Actionscript,我失蹤了?我使用內置的SharedObject類來保存cookie。我用來保存和加載數據的代碼如下(我也使用字節數組類)。
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和緩存中的資源之外,它如何節省資源。
誰能一些線索通過這也許會多一點到如何與Flash遊戲保存/加載在AS3完成?或者是「使用sharedObject」嗎?
我甚至不知道這個存在,謝謝。 –
所以,我跑了它,它說「其他開銷」佔用了大量的處理能力,大大降低了幀率。你有沒有聽說過這樣的事情?或者開銷應該是多少? –
@Naomi Dennis不,對不起。這可能是一個很好的後續問題。或者,也許你會在Adobe論壇中找到有用的東西,例如https://forums.adobe.com/thread/1114767 – null