上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




クライアント向けにFlexで画面を構成し、サーバー側の処理をPHPで実現する方法を試してみます。
今回はインストールが簡単なAMFPHP(AMF:Action Message Format)で試してみたいと思います。
ZendFrameworkでも1.7よりAMFがサポートされるようになりましたが・・・まずはAMFPHPを試します。

Zend_AMFのドキュメント
http://framework.zend.com/manual/ja/zend.amf.html

Zend_AMFも試したので・・・下記も合わせて参照してください。
【ZendFramework】Flex3とPHPの連携(Zend_AMF編)-ZendFrameworkの準備
【ZendFramework】Flex3とPHPの連携(Zend_AMF編)



AMFPHPのダウンロードとインストール


http://www.amfphp.org/
まずは上記URLよりAMFPHPをダウンロードします。
(ここでは、amfphp-1.9.beta.20080120.zip)

次に、ダウンロードしたファイルを解凍し、下記ディレクトリに移動します。

C:\Program Files\Apache Group\Apache2\htdocs\sampleFlex\amfphp

ちなみにApacheのDocumentRootは下記になっています。

DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"


Flexから呼ばれるPHPサービスクラスの生成(サーバー側の処理)


■設置場所C:\Program Files\Apache Group\Apache2\htdocs\sampleFlex\amfphp\services
■ファイル名:HelloWorldService.php

<?php
class HelloWorldService {
/**
* 文字列を返します。
*/
public function getHelloString () {
return 'Hello World Flex PHP!! ';
}
}
?>

上記サービスクラスは、Flexから呼ばれた際文字列を返すのみだけの動作を行います。

PHPを呼び出すFlexの作成(画面表示)


http://studynet.blog54.fc2.com/blog-entry-17.html
上記よりFlashDevelopでFlexプロジェクトを作成してください。
(作成場所はどこでもOKです。)

Main.mxml



<?xml version="1.0" encoding="utf-8"?>
<mx:Application width="200" height="200" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script source="Hello.as" />
<mx:VBox>
<mx:Label text="Hello World!!" id="text1" />
<mx:Button label="PHPへ送信" click="init()" />
</mx:VBox>
</mx:Application>


Hello.as



import mx.controls.Alert;
import flash.net.NetConnection;
import flash.net.ObjectEncoding;
import flash.net.Responder;

private const GATEWAY_URL:String = 'http://localhost/sampleFlex/amfphp/gateway.php';

/**
* 初期データ読み込み
*/
private function init():void {
var responder:Responder = new Responder(onResult, onFault);
var con:NetConnection = getCon();
con.call('HelloWorldService.getHelloString', responder);
}
/**
* NetConnectionの初期化
*/
private function getCon():NetConnection {
var time:Number = (new Date()).getTime();
var con:NetConnection = new NetConnection();
con.connect(GATEWAY_URL + '?time=' + time);
con.objectEncoding = ObjectEncoding.AMF3;
return con;
}
/**
* 結果の取得(成功時)
*/
private function onResult(etc:*):void {
if (typeof etc == 'string') {
text1.text = etc;
}
}
/**
* 結果の取得(失敗時)
*/
private function onFault(etc:*):void {
Alert.show('通信に失敗しました');
}

上記作成したFlexプロジェクトをビルドしコンパイルして作成されたswfファイルを下記に設置します。
■設置場所:C:\Program Files\Apache Group\Apache2\htdocs\sampleFlex

後は、ブラウザより下記URLにアクセスし「PHPへ送信」ボタンを押下すると結果が表示されます。
http://localhost/sampleFlex/sampleFlex.swf

■実行前

■実行後(PHPへ送信ボタン押下後)

少しでも参考になれば応援お願いします。












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。