FlashからCache'にアクセスする
Caché accessed from FLASH.
Flashとは
Macromedia 社の Flash
はWebページに動的な効果を与えるのに広く使われています。
かつてはWeb上のバナー広告といえばGIFアニメによるものが主流でしたが、最近ではこのFlashを使っているものが数多く見られるようになってきました。
Flash普及率調査(http://www.macromedia.com/jp/software/player_census/flashplayer/penetration.html)では自前の調査とはいえ、100%に近い普及率となっており、Webアニメーションにおいて事実上の標準の地位を確立しています。
Flash → JavaScript ...
Flashはアニメーションを再生するものにとどまらず、様々な機能が拡張されてきました。JavaScriptを呼び出して、その結果を受け取るということも可能になりました。JavaScriptからはハイパーイベントを使ってCache'にアクセスすることが可能です。ということは、FlashからCache'にアクセスすることが可能なのでは?と考えられます
例によってここでは$Hの値を取得してみます。次のようなFlashを作成して、ボタンが押されたときに$Hの値を表示するものとします。
タイトルを入れてください
このページを作成するのは次の4つのステップからなります。
- Flashの作成
- Flash Action ScriptからJavaScriptの呼び出し
- JavaScriptからハイパーイベントの呼び出し
- Cache'サーバサイド処理の記述
これらについて順に説明します。
1.Flashの作成
Flashは動画編集と同様に時系列に伴って動作を記述していきます。動画編集がシーンの切り貼り・テロップの挿入・ワイプの設定程度なのに比べて、オブジェクトの作成から始めなければならないFlashのほうが難しいと言えるかもしれません。
Flashは書籍やWeb上で多くの情報が公開されているので、そちらを参照になってください。
ここではキーとなる部分だけ説明します。(ボタンの作成方法などは省略します)
「ここに取得した値が表示されます」と初期表示されている結果表示テキスト部分は、テキストオプシォンで種別をダイナミックテキストにします。
また、関連付けられた変数名は retVal とします。
2.Flash Action ScriptからJavaScriptの呼び出し
次にボタンが押されたときの処理を記述します。FlashにはAction
Scriptというスクリプト言語があり、それを利用してJavaScriptをコールします。
ボタンが押されたときのアクションを次のように記述します。
on (release) {
getURL("javascript:getHoro();")
gotoAndPlay ( this._currentframe + 1 );
} |
この処理を置いたフレームのフレームイベントにstop()を追加するのを忘れないでください。
3.JavaScriptからハイパーイベントの呼び出し
ここまで作成したら、このFlashをF12キーを押してパブリッシュします。拡張子swfのファイルと、それと同名のhtmlファイルが作成されています。このhtmlファイルはパブリッシュするたびに強制的に上書きされるので別名で保存します。ついでに拡張子をここでcspに変えておきます。以後の作業はここで作成した別名ファイルに対して行います。
cspファイルを開き、次のようなハイパーイベントを呼び出すJavaScriptを追加します。
<script>
function getHoro(){
rev = #server(..Routine())#;
FLASH1.SetVariable("retVal",rev);
}
</script>
|
4.Cache'サーバサイドの処理
最後に、このJavaScriptから呼ばれるCache'サーバ側の処理をcspファイルに記述します。
今回は$Hの値を返すだけなので簡単です。
<csp:method Name=Routine
method=a arguments=""
Returntype="%String">
Q $H
</csp:method>
|
これで完成です。このcspファイルとswfファイルをCSPが動作するディレクトリに置いて、ブラウザから呼び出すと…… $Hの値が表示されました。
Flashを使ったサイト
ZDnetの記事にFlashを使ったサイトが紹介されていました。
ソース
Flash MXのプレリリース版で作った予約サイトを挙げている。ここでは,よくある複雑なオンラインフォームへの入力をサイト訪問者に強いる代わりに,サイト訪問者が空き室状況や料金をチェックして,ホテルの予約をし,クレジットカードのデータを送信するまでを,すべて同一画面上で行えるようになっている。
このホテルの予約システム(左の画像)はFlashで作られています。日付によって選択できない部屋のグレードがあることなどから、データベースと結合しているサービスだと思われます。
また、「Finish Reservation」を押そうとしても、入力が不完全な部分はボタンを押す前にその情報が表示されるなど、とても使いやすいです。英語を読まなくても、なんとなく予約できるくらい、よくできています。
BroadMoorのサイトへ
|
クリックすると大きく表示します
|
|