- 追加された行はこの色です。
- 削除された行はこの色です。
*afmphp [#pa0872d1]
**afmphpとは? [#c4c9dac2]
FlashとPHPの連携は、今までは以下のような感じでした。
-LoadVarsオブジェクトを使用したHTTP通信
-XMLオブジェクトを使用したHTTP通信
&br;
サーバとクライアント間を容易に通信できる仕組みがafmphpです。
**Flash側の準備(FlashRemotingコンポーネントのインストール) [#ved4f94f]
***flashremoting_components_flash8_jp.msiをダウンロードし、msiファイルを実行する [#r6d6d7ff]
参照 : http://www.adobe.com/jp/products/flashremoting/downloads/components/
**サーバ側の準備(AMFPHPのインストール) [#p6b74a31]
***amfphp-1.2.6.zipをダウンロードし、解凍したものを以下のフォルダ構成にしサーバにアップする [#g286db2d]
ドキュメントルート
|
|-- amfphp
| |
| |-- amf-core
| |-- browser
| |-- services
| |
***動作確認 [#w02a55a8]
以下の画面が表示されればインストール成功
http://localhost/amfphp/browser/index.html
**サンプルの作成 [#xe901b0e]
***HelloWorld.phpを作成する [#b488fed3]
ドキュメントルート
|
|-- 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;
}
}
***HelloWorld.flaを作成する [#d30c0138]
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("エラー");
}