トピックス記事     カテゴリ : フラッシュ

Asynchronous Flash and XML

Flashを使うにあたり、気になったのは Ajaxでやっているサーバーとのやり取りが、簡単にできるかどうかだった。

Flashでは、インタラクティブに操作するプログラムをActionScriptで書くことができる。
Google Mapのように、クリックで遷移させ、ドラッグで画像を動かし、画像を拡大縮小することは、ActionScriptで簡単に実現できる。
限定された範囲の画像表示なら、Flash CS4などの開発環境上で、デザインに合わせ淡々とソースを書きテストしながら進められる。ブレークポイントを設定してレジスタの内容を見られるのでデバッグも楽である。

さらにFlashでは、外部のプログラムと連携する ActionScriptを書くことで、Google Mapのように無限とも言える枚数の画像を表示するプログラムを作ることができることがわかった。

Google Mapように沢山の地図を見せるためには、FlashのActionscript内にデータを持たせるやり方では難しい。
現在表示している地図画像の周辺の地図画像を、外部のプログラムを呼び出してデータベースから対象の地図を探して準備し、次の地図を表示させる用意が必要になる。

この部分は、Ajaxと同様に、イベントをトリガにして swfファイルからデータを送信し、サーバー側に用意した pythonやphpのプログラムで受け取り、受け取ったデータでデータベースなどから関連データを探し、抜き出したデータをブラウザ側に渡すことで実現できる。
データの戻しかたの adobeの仕様が少々手抜きっぽいが、コードの記述が少ないので見通しはいい。

フォーム文に入力した文字列をサーバー側に渡し、データベースと照合して対象データを抜き出しブラウザで表示する動きも同じだ。

問い合わせ」ページのシステムで、この仕組みを使っている。
未入力チェックはswf側、入力部の妥当性や mailサーバー存在の確認を外部プログラムで行い、送信終了メッセージやエラーメッセージを swfに戻している。
SWFのコードの4/5は、背景を動かす部分で、残りの大部分は入力チェック部。肝心の通信の部分は数行で終わる。

注意が必要なのはセキュリティ対策だ。Callするプログラム側は、意図しないアクセスによりデータベースが操作されないよう、引数のサニタイジングやインジェクション対策などを行っておく。


Comments

Add Comment

このアイテムは閲覧専用です。コメントの投稿、投票はできません。
 
Copyright | 8 Peaks Inc. | Saku City NAGANO | 0267-82-7082 | Back to top