FlashとCGIとの連携の方法 (AS3.0)

  • hatena bookmark
  • Twitter
  • Delicious
  • Blogger Post
  • Evernote
  • Google Bookmarks
  • Share/Bookmark

FlashとCGIの連携を行ってみました。サーバサイドではPHPやJavaと連携した紹介が多いので、今回はPerlを使ってみたいと思います。

以下がサーバサイドのソースです。受けたデータをそのまま返します。

use CGI qw(:cgi);

my$cgi = new CGI;
print $cgi -> header( 'text/plain' ). "value=". $cgi -> param( 'val' );

exit;

value=”値” のようにクエリ型で返します。valueの部分は変更可能です。また複数の値を返したい場合は、value=”値”&value2=”値”のように&でつなげて返します。
今回外していますが、ヘッダの”expire”を”0″にするとFlash側で値を受け取れないようです。

次にFlash側のソースです。


var url_vars:URLVariables = new URLVariables( );
url_vars.val = "連携テスト"; //<- サーバへ渡す値

var url_req:URLRequest = new URLRequest( );

url_req.url = "サーバサイドスクリプトのパスを記述";
url_req.method = URLRequestMethod.POST;
url_req.data = url_vars;

var url_load:URLLoader = new URLLoader( );

url_load.dataFormat = URLLoaderDataFormat.VARIABLES;
url_load.addEventListener ( Event.COMPLETE, compHandler );
url_load.load ( url_req );

function compHandler ( event:Event ):void {
	var vars:URLVariables = new URLVariables( event.target.data );
 	var r:String = vars.value;
	resultText.appendText( r );
}

解説:

  • 2行目のvalというキーに”連携テスト”という値を代入しています。val部分は任意ですが、サーバ側の受け取り部分と同じにする必要があります。
  • 18行目でサーバからの取得値を変数に格納しています。
  • 19行目は今回”resultText”というダイナミックテキストエリアへ反映させています。

また、ロードだけ行いたい場合は、1、2、7、8行目を外します。

今回、以下のポストが非常に参考になりました。
http://www.at-sonic.com/blog/archives/2008/02/as3php.php
http://nashiko.net/blog/1069

  • hatena bookmark
  • Twitter
  • Delicious
  • Blogger Post
  • Evernote
  • Google Bookmarks
  • Share/Bookmark
関連する記事:
  1. FlashとPerlでsocket通信をする方法 (AS3.0)
  2. ActionScript3.0(AS3.0) – addEventListenerで関数へ引数を渡す
  3. Flashで別ドメイン(クロスドメイン)にある画像の表示方法(AS3.0)
  4. Papervision3D – ポリゴンにSWFファイルを貼り付ける方法 (AS3.0)
コメント 停止中