[Return]
Flash Remoting
Flash Remoting for PHP (amfdata.php)
Musicman さんが作成された、PHP 用 AMF クラス「amfdata.php」の紹介です。
現在は、「amfdata.php」をベースとした AMFPHP が一般的に使用されています。
こちらの内容は、よりローレベルな部分の仕組みが知りたい方向けの基礎的内容です。
- AMF とは?
AMF は、「Action Message Format」の略称です。
ActionScript で使用されるメッセージを交換するためのフォーマットということです。AMF ではサーバーとクライアントの通信をバイナリデータで行なうため、従来のようなテキストデーターでのやり取りだけでなく、オブジェクトデーターの交換も可能になります。
AMF は HTTP プロトコル上を POST のデーターとして流すことも可能ですので、amfdata.php を使えば、通常の Web サーバー + PHP の環境で利用することが可能になります。
- amfdata.php とは?
Macromedia 社で発売されている Flash Remoting は、PHP には対応していません。amfdata.php は Flash Remoting で使用されている AMF を実装することで、Flash Remoting を実現する PHP 用クラスです。このクラスを使用すると、PHP で AMF での送受信が出来るようになります。
amfdata.php では、ブーリアン、数値、文字列、オブジェクト、配列の入出力を扱うことが出来ます。
従来の変数または XML 形式でしかやり取り出来ないことと比べると、これは Flash と PHP でのやり取りの世界では、飛躍的な進歩です。- amfdata.php の入手先
http://www.fontimages.org.uk/flash/amfdata_php.html の内容を、amfdata.php というファイルに保存して下さい。
- 使い方
-
include "amfdata.php"; amf クラスを PHP スクリプトに include します。これは必須です。 $request = new amfdata(); amf クラスを定義します。
$request を通して AMF データにアクセス出来るようになります。これは必須です。$request->fn nc.call で呼び出されたファンクション名が入っています。 $request->fnargs[] nc.call で渡された引数が入っています。引数は配列に格納されています。 $request->sendresult() クライアントに返す結果。 - サンプル
「FlashRemoting:amfdata.php を使用した PHP との Flash Remoting」に、実際に体験出来るサンプルを用意していますので、そちらをご覧ください。
- amfdata.php の利点
Macromedia の製品版「Flash Remoting」ではサポートされていない PHP と、AMF での通信が可能になります。
AMF ではオブジェクトの交換が出来るので、loadVariables や loadVars 等よりも高度な情報のやり取りが可能になります。
Flash MX だけでなく、Flash Communication Server MX と PHP 間の AMF 通信も可能になります。これにより、Flash Communication Server MX で、PHP を経由した DB との連動が可能になります。
- amfdata.php の欠点
- 注意点
-
Flash Player とサーバーとの通信には UTF-8 が使用されます。クライアントサイドの ActionScript 内では、System.useCodepage の状態に関わらず、サーバーからのデーターは受け取ることが出来ますが、サーバーサイドでは Flash にデーターを送信する際には必ず UTF-8 にする必要があります。
混乱を避けるためには、クライアントサイドでも UTF-8 を使われた方が良いと思います。amfdata.php は、AMF プロトコルを独自解析して実現されていますので、マクロメディアは動作保証していません。
純正の製品とは違った挙動をする可能性がある点や、将来 Flash Remoting の仕様が変わった際に動作しなくなる可能性がある点には注意が必要です。
この情報は、Ryu!の独自調査などに基づいたものです。
間違い等がありましたら、ご連絡ください。
[Return]
Love Love Heart
Ryu!
Second Life
Adobe Flash
Flash Player
Flash Lite
Flex
AIR
Flash Remoting
Flash Communication Server
Computer
Macintosh
TurboLinux
CUBE CL-10000
X68000

