SharedObjectとByteArrayのテスト
ActionScriptには、ブラウザで言うところのCookieのような機能を持つSharedObjectというのがある。
また、自由にバイナリデータを使用できるByteArrayというクラスもある。
どちらもあまり使ったことがなかったので、この二つを組み合わせたテストコードを書いてみた。
1回目の起動ではSharedObjectに格納し、2回目以降ではSharedObjectから読み出すだけ、というコードです。
/* TestObject.as */ package { import flash.display.Sprite; import flash.net.SharedObject; import flash.utils.ByteArray; public class TestObject extends Sprite { // SharedObjectのキーワード. public const so_name:String = "TEST2"; public function TestObject() { // 読み出しチェック. // SharedObjectを準備して、そこにコピー. var so:SharedObject = SharedObject.getLocal( so_name ); if( so.size == 0 ){ // 1回目の起動:まだデータがないので格納します. var orgArray:ByteArray = new ByteArray(); orgArray.writeUTF( "Hello" ); orgArray.writeUTF( "SharedObject" ); orgArray.writeUTF( "World" ); orgArray.compress(); // 圧縮. so.data.array = orgArray; trace("store!"); } else{ // 2回目以降:データを取得できたので、表示します. var storedBA:ByteArray = so.data.array as ByteArray; storedBA.uncompress(); // 解凍. // 格納されているのはすべて文字列という前提で処理. while( storedBA.position < storedBA.length ){ trace( storedBA.readUTF() ); } trace( "done." ); } } } }