SharedObjectでローカルにデータ保持

Shared ObjectはFlashでローカルにデータを保持しておく際に使う記憶領域で、デフォルトでは下記の場所にある。
(環境によってはちょっと違うかも)

  • Windows
    • C:\Documents and Settings\”ユーザー名”\Application Data\Macromedia\Flash Player\#SharedObjects
  • Mac
    • ユーザ\”ユーザー名”\ライブラリ\Preferences\Macromedia\Flash Player\#SharedObjects

実はクッキーよりも使いやすくて結構な量のデータを保持しておく事ができる。
また、ユーザがブラウザの設定でキャッシュ消したり、いろいろ消したとしても消す事のできない領域だったりする。

動画サイトも殆どがFlashを使っているので、世のお父さん方が夜な夜なムフフな動画を見てたりすると結構ここにファイルが残っているので、履歴を消したからって安心できないので注意

Flashプレイヤの設定で保存できないように設定したり、許可する記憶量をいじれるので環境によってはできない事もある

ActionScript3で使う場合は、下記のようにする

取得

//UserInfoという名前のSharedObjectを取得する
//初めてgetLocalする場合は、パラメタの名前のSharedObjectを生成します。
var so:SharedObject = SharedObject.getLocal("UserInfo");

値のセット・保存

//取得・生成したUserInfoというSharedObjectに値を設定する
var so:SharedObject = SharedObject.getLocal("UserInfo");

//SharedObjectのUserInfoの[name]に[みぞ]・[password]に[パスワード]を指定する
so.data.Name = "みぞ"
so.data.Password = "パスワード"

//保存
so.flush();

こんな感じにできる。
これを初期化時に組み込めば、名前とパスワードをログインフォームにセットしておく事ができちゃう。