私はAS3のプロジェクトに取り組んできましたが、私はさらに別の動きがありました。ActionScript 3&ランタイムリソース
背景:これはターンベースのゲームです。私は過去1週間それを最適化していましたが、今はバターのように動いています(一貫して!)。
問題:ただし、保存されたゲームから継続して再生しようとすると、一貫性が低下します。具体的には、最初の数回は正常に動作し、コンピュータがフリーズするまでパフォーマンスが大幅に低下します。これは戦闘中にのみ発生し、メニューや他の時間には発生しません。
Actionscriptに関連する問題がありますか?私はビルトインのSharedObjectクラスを使ってクッキーでゲームを保存しています。データを保存およびロードするために使用しているコードは次のとおりです(バイト配列クラスも使用しています)。
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の技術的な仕組みがどのように機能しているのか、それがクッキーであることを除いてどのようにリソースを節約し、キャッシュに保存しているのか、考えていません。
誰でもフラッシュゲームでのセーブ/ロードの方法をAS3でどのように行っているのでしょうか?または、「sharedObjectを使用する」ことはありますか?
私はこれが存在したことさえ知りませんでした、ありがとう。 –
だから、私はそれを実行し、 "その他のオーバーヘッド"が処理能力の膨大な量を占め、フレームレートを劇的に低下させると言いました。そんなことを聞いたことがありますか?または、どのオーバヘッドを想定していますか? –
@Naomi Dennisいいえ、申し訳ありません。これは良いフォローアップの質問かもしれません。あるいは、アドビフォーラムで役立つものを見つけることができます:https://forums.adobe.com/thread/1114767 – null