FlashとPHPの連携は、今までは以下のような感じでした。
サーバとクライアント間を容易に通信できる仕組みがafmphpです。
参照 : http://www.adobe.com/jp/products/flashremoting/downloads/components/
ドキュメントルート | |-- amfphp | | | |-- amf-core | |-- browser | |-- services | |
以下の画面が表示されればインストール成功
http://localhost/amfphp/browser/index.html
ドキュメントルート | |-- amfphp | | | |-- amf-core | |-- browser | |-- services | | |-- HelloWorld.php
<?php /** * HelloWorldクラス * * @access public * @package * @author * @version */ class HelloWorld { /** * AMFPHPの設定 * * @access public * @return */ function HelloWorld() { $this->methodTable = array ( "display" => array ( "access" => "remote", "description" => "文字列を返します" ) ); } /** * flashから呼ばれる関数 * * @access public * @return */ function display($string, $name) { return 'Hello world : ' . $name . ' ' . $string; } }
import mx.remoting.*; import mx.rpc.*; import mx.remoting.debug.NetDebug; //URL var gatewayUrl:String = "http://localhost/amfphp/gateway.php"; //デバッグの初期化 NetDebug.initialize(); //PHPのHelloWorldクラスを呼ぶ var _service:Service = new Service(gatewayUrl, null, 'HelloWorld', null , null); var pc:PendingCall = _service.display("Hello!", "Bob!!"); pc.responder = new RelayResponder(this, "handleResult", "handleError"); function handleResult(event:ResultEvent) { trace(event.result); } function handleError(event:FaultEvent) { trace("エラー"); }
HelloWorld?.flaを実行すると、以下のように出力する。
Hello world : Bob!! Hello!