2

Flashパズルゲームを作っています。ユーザーがゲームをロードするとき、最後の状態からゲームを再開するかどうかを尋ねる必要があります (存在する場合)。シリアル化システムを導入していますが、ロードされた状態が確実に最後の状態であることを確認する必要があります。

SharedObject1 つの解決策は、状態が変化するたびに (プレーヤーが移動したとき) に状態を保存することです。ただし、ゲームの状態にはカウントダウンが含まれることがあるため、状態を保持するには、状態を常に (または定期的に) 保存する必要があります。これは許容できると思いますが、扱いにくいようです。

swf が閉じられたときに発生するイベントはありますか? または、他の誰かがこれに対する別のエレガントなソリューションを持っていますか?

(私は AIR を使用していませんが、AIR を必要とするソリューションは大歓迎です。)

編集: もう 1 つの重要な点は、ゲームの埋め込み HTML を制御できない可能性があることです。これは、多くのサイトにシンジケートされる可能性があるためです。そのため、JavaScript を含むソリューションは理想的ではありません。

4

3 に答える 3

2

Flash が HTML ページでホストされている場合、「ウィンドウが閉じています」イベント通知を使用して、古い学校の GetVariable() または新しいスタイルの FlashCall() メカニズムを使用して、Flash オブジェクトにメッセージを送信できます。

Flash オブジェクトが破棄される前に実際に状態を保持できるかどうかは別の問題です...いつでも (悪意のある) 「このウィンドウを閉じるか移動しますか?」を行うことができます。一部のサイトが使用していることを警告します。

Flex での DOM イベントの処理

HTML5 イベント

于 2010-08-25T09:34:23.047 に答える
1

クローズ時イベントは適切な解決策のように思えますが、シリアライゼーションを「分割」できますか? つまり、各移動で完全なパズル状態を保存しますが、カウントダウンが変更されるたびに更新できる、カウントダウン (または同様のもの) のセカンダリ '軽量' 状態も保持します。

これは、ページが破棄される前に close イベントをキャッチして保存しようとするよりも簡単かもしれません (特に、ブラウザーはこの領域で一貫していないため)。

于 2010-08-25T09:49:14.820 に答える
0

これはあなたを助けるはずです

于 2010-08-25T09:18:27.697 に答える