最初に、SharedObjects を使用して重要な情報を保存することに関する注意事項です。あなたの場合、再受験を防ぐためにクイズが完了したかどうかを保存します。これは絶対確実ではありません。どのユーザーも共有オブジェクトを削除または変更できますが、そのデータはもうありません。
彼らの回答を追跡して電子メールで送信する限り、それは完全に実行可能です. ユーザーが複数のセッションでクイズを受けられるようにする (部分的にクイズを完了し、後でそれに戻る) 場合を除き、それらを共有オブジェクトに格納する必要はありません。単一の「セッション」中に共有オブジェクトに保存するものはすべて、アプリケーションの実行中に簡単にメモリに保存できます。
最後に、シーンを使用していると述べました。ほとんどの開発者はそれを推奨しません。これは、Flash アプリケーションを開発する時代遅れのモードです。現在、開発プロセスの中でそれらを取り除ける段階にある場合は、そうすることを強くお勧めします。
警告はさておき、これを行う方法は次のとおりです。
// in your first Scene (here, labeled "Scene 1"), grab a reference to a SharedObject, I named mine "quiz"
var so:SharedObject = SharedObject.getLocal("quiz");
// set up any necessary data structure for the data you plan to store
if(!so.data.results){
so.data.results = {};
}
// you can check to see if data has already been written to the shared object, if so, you can use this to determine the flow of the quiz
if(so.data.results.scene1Results){
trace("scene 1 already completed: ",so.data.results.scene1Results);
}
else{
so.data.results.scene1Results = "some value";
so.flush();
trace("scene 1 data stored");
}
他のシーンでは、前と同じ方法で共有オブジェクトへの参照を取得SharedObject.getLocal("quiz");
し、クイズの進行に合わせてデータを追加できます。
結果の郵送に関しては、次の 2 つのオプションがあります。
- (推奨) POST 要求を介して情報を受信し、選択したアドレスに電子メールで送信するサーバー側スクリプトを作成します。
- (非推奨) メールの本文としてクイズの結果を含む mailto URL を生成します。これの問題は、ユーザーが目的の受信者に送信する前に、自分のメール クライアント内で結果を編集できることです。