FLASHでクッキーします。
とは言っても、FMS(メディアサーバー)を使用したことある人にとってはお馴染みのクラスを使用します。
まぁ最初にFMSをいじってた人間の方が稀か・・・
SharedObject・・・FMSに接続する際はgetRemote()で接続して、リモート共有オブジェクトがあるかどうか調べますが、今回はgetLocal()でローカルに共有オブジェクトが存在するかどうかを調べ、ない場合は作成してデータを保存することができます。
まぁ、基本的にコマンドがgetRemote()とgetLocal()で違うだけ。捉え方としてはほとんど一緒だと考えて間違いないでしょう。
ただし、Javascriptでクッキーを使用したことある人なら分かると思いますが、残念ながらFLASHクッキーには有効期限というものが存在しません。つまり、Dateクラスを使用して自分で設定して自分で計算して書き込んで、次読み込んだ時にそれを取得して自分で消せってことです。
正確に言うと、Flash Playerの設定でローカル共有オブジェクト・・・つまりFLASHクッキーの容量を設定できるので、そこがいっぱいになると勝手に消されたりするらしい。そういう意味でなら有効期限はあります。
まぁDateで簡単に設定出来るわけだからしょうがないと思いますが、Javascriptみたいにブラウザを閉じたらクッキーも削除・・・ってのが出来ないのが残念。
理由は明白で、FLASHクッキーはブラウザで管理していないから・・・だと思われます。
予測ですが、まぁきっとそうでしょう。
Javascriptで埋め込まれたクッキーはブラウザで確認して、消すこともできるけど、FLASHクッキーはブラウザで管理できません。
どこにあるかと言うと・・・WidowsXPでは、
C:\Documents and Settings\ユーザー名\Application Data\Macromedia\Flash Player\#SharedObjects\GNLP7EF7
にあります。
いや・・・僕はそこにありました。他の人は知りません。
Flash Playerの設定で変更できるのかもしれないし、OSによっても当然違うでしょう。
とりあえずそこら辺探してみてください。しかし、よく分からないのが、末尾の\GNLP7EF7これって何ですかね?
何故こんな名前のディレクトリなのか・・・全くもって不明。
ひょっとしたらPlayerのバージョンとかで違うのかもしれない。
とにかく、その中にさらにサブフォルダがあって、ローカルで何も設定せずに作成すればlocalhostというフォルダにあるはず。
FLASHクッキーはclear()で消去、flush()で即時書き込みが出来るので、ディレクトリを開いて見てればタイムリーに書かれたり消されたりしているのを確認することができます。
(余談ですが、基本的にローカル共有オブジェクトはflush()で書き込まないと、FLASHを閉じたりしない限り書き込まれませんので注意)
クッキーの拡張子は.sol
なんだこりゃ?とりあえず、文字化けしたりしますが、テキストエディタで開けるので見れるはず。
しかし、FLASHクッキー置き場を見てみましたが、びっくりするくらいファイルが沢山。
う~む・・・気付かないうちにこんなに沢山。悪意を感じますねw
TrackBack :





