ついに、箱庭ノベルズIIにセーブ機能追加!
と大々的に言いたいところですが、試験運用という感じでスタートします。

全フラグ値、現在表示されている画像・エフェクト、シナリオの進行状況
その全てを正確に保存する必要のあるセーブ機能は、
その性質上複雑な処理のため、
特定の条件下ではうまく機能しない可能性があります。

もし、セーブしたけどおかしい、ということがありましたら、
・どの作品で
・どのあたりでセーブして
・具体的にどうおかしいか
など、できるだけ詳細にご連絡いただけるとうれしいです。

ちなみに技術的な話をすると、データ保存には
flashのSharedObject(以下SO)を使っています。

最初はCookieを考えていたのですが、
保障される変数が20個、サイズも各4kbと、
変数の値にマルチバイトも使える箱庭ノベルズでは、微妙に不安。

その点、SOは基本100kbほど、
ユーザー指定で無制限にもできます。

またCookieはブラウザごとなのに対し、SOはマシンごと。
IEとFirefox乗り換えても問題なし。
あとはネットワーク介さずローカルで完結できるとか・・
この辺メリット薄めだけど(笑

マルチバイトは、IEなどはエンコードせずに
ダイレクトでflashvarsに渡しても大丈夫でしたが、
SafariやOperaなど、ブラウザによってはダメなので、
やはりエンコードしとくのが無難。

とりあえずjavascript側でencodeURI。
が、それをそのまま渡すと、結局flash内部でデコードされてしまうので、

encodeURI(mb_vars).replace(/%/g, '|')

みたいに置き換えて保存させてみました。
逆にロードするときは、内部で

decodeURI(mb_vars.replace(/\|/g, '%'))

みたいな。
encodeURIは自動でutf-8になるようで、かなり容量食うんですけどね。