キャリアごとの共有オブジェクト
共有オブジェクト(SharedObject)について
今回はFlash Lite 2.x以降から使用できるようになった「共有オブジェクト(SharedObject)」について紹介ます。
まず、キャリアごとの違いをざっくり言うと、以下のようになります。
・docomo:Flash Lite 3.0以上 ブラウザのみ使用可能
・au:Flash Lite 2.0以上 データフォルダのみ使用可能
・ソフトバンク:Flash Lite 2.0以上 機種によってまちまち
docomoは、Flash Lite 3.0以上の端末であれば共有オブジェクト使用可能です。ブラウザのみ使用可能となります。ただし、ブラウザを閉じると消失してしまいます。auは、Flash Lite 2.0以上の端末で使用可能です。auも使用制限があり、データフォルダの中でのみ発行可能になります。ソフトバンクに関しては、機種によってまちまちのようです。ソフトバンクの公式資料には、データボックスのみ使用可能とありますが、筆者の手持ちのFlash Lite 2.0端末ではブラウザで使用可能、データボックスで使用不可でした。
また、共有オブジェクトが使用可能かどうかは、以下のスクリプトで確認する事ができます。checkSOの結果をテキストフィールドに表示して確認します。
checkSO = System.capabilities.hasSharedObjects
図1-1のようにキャリアによって使用方法に違いがあるので注意が必要です(docomoの場合は設定ファイルも一緒にデータフォルダに保存されるためにtrueが返却されます。実際には共有オブジェクトに変更等はできない)。
では実際に共有オブジェクトを作成してみましょう。今回はファイルにアクセスするごとに数値がカウントアップする例を作成します。処理の具体的な流れとしては、以下のようにとなります(図1-2)。
1.読み取り後のfunctionをリスナー登録
2.getLocal でSharedObject読み取り
3.load完了後、リスナー登録したfunction実行
Flash Liteの場合、読み書きには時間が必要になります。PCのように一瞬でSharedObjectが書き込み、読み込みされる事はなく、ほとんどの機種でgetLocal直後に保存されたSharedObjectが返却される事はありません。ですので読み込みにはaddListenerを使用してリスナー登録し、読み込み終わるのを待ちます。addListenerとは、onLoadの様に読み込み完了を通知するものと考えてください。
スクリプトは図1-3のように記述します。
docomoはブラウザで、auはデータボックスで確認してください。cntがカウントアップしていきます。サンプルファイルをダウンロードできますので、ご活用ください(5.84KB)。
docomoにはプラグインが必要!
気をつけなければならないのはdocomoの場合です。FlashからFlash Lite 3.0を書き出しできるので、そのまま使用できそうなものですが、実はプラグインをインストールしなければ使用できません。プラグインは、「Adobeのモバイル & デバイスデベロッパーセンター(http://www.adobe.com/jp/devnet/devices/i-mode.html#resources)」の「Flash Lite 3.0 対応 NTT DoCoMo 携帯電話用 Adobe Flash CDK」からダウンロードしてください(図1-4)。
その中の「モバイルメタデータ.swf」がメタデータパネルになります。プラグインと言っても、SWFファイルなので間違わないようにしてください。このファイルをOSに応じて指定のディレクトリにコピーします。
・Windows Vista PC:<...>/AppData/Local/Adobe/Flash CS3/ja/Configuration/WindowsSWF>
・Windows XP PC:<... and="" settings="">/Local Settings/Application Data/Adobe/Flash CS3/ja/Configuration/WindowsSWF>
・Apple Mac:<...>/Library/Application Support/Adobe/Flash CS3/ja/Configuration/WindowsSWF>
コピーが終わったら、Flashを再起動します。すると、「ウィンドウ → 他のパネル → モバイルメタデータ」でモバイルメタデータパネルが開きます。そのウィンドウのにある、ストレージサイズを設定します。ストレージサイズの容量は、1KBから最大10KBです。今回は10と入力しました。そしてモバイルメタデータパネルの右下にあるチェックマークをクリックして、ストレージサイズをムービーに適応します(図1-5)。
これでdocomoでもShardObjectが使用できるようになりました。非常にわかりにくいので、開発の際はインストールを忘れないようにしましょう。
ざっくり見ていきましたが、ShardObjectはキャリアごとにあまりに扱いが違いますので、多くのプロジェクトは使われないかと思います(そもそもdocomoではデータフォルダでswfの操作ができません)。Flash Liteのディスコンも決定していますし、せめて次の発売のモデルではキャリアごとの仕様の違いがなくなる事を強く願います。
この連載では、今までネットにはあまり情報がなかったFlash Liteの仕様を中心にざっくり見ていきましたが、いかがでしたでしょうか。
Flash Liteは制限との戦いです。窮屈に感じられる方もいらっしゃるかと思いますが、逆にいうと、制限をうまくくぐり抜けることによってもっと面白いコンテンツを作る事が可能だと思います。Flash Liteは制限が多くプアーに思うかもしれません。しかし皆さんのアイデアはプアーではないはずです。ぜひ、日本のモバイルならではのコンテンツ作りにチャレンジしてみてください。
【参考文献】
「Flash Lite 2.x ActionScript リファレンスガイド > ActionScript クラス > SharedObject」(http://livedocs.adobe.com/flashlite/2_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts_wEcute&file=00000749.html)(アクセス:2009/01)
「Adobe モバイル & デバイスデベロッパーセンター : i モード」(http://www.adobe.com/jp/devnet/devices/i-mode.html#resources)(アクセス:2009/01)
「キャリアごとの共有オブジェクト」サンプルプログラム