Flash 学習 ソフト アニメーション ActionScript
Top | Back | Next
データ送受信

 いよいよデータの送受信を行って、swfファイルの表面上だけの操作でデータの受け渡しを行いたいと思います。今まではデータを送信したら、その結果をCGIファイルで出力して表示したり、保存した内容を別のswfファイルで受信したりをしてきましたが、LoadVarsクラスのLoadVars.sendAndLoad()メソッドを使用してデータの送受信を行う説明をしていきたいと思います。流れとしてはFLASHでデータ送信⇒CGIで処理⇒FLASHでデータ受信です。


上記のswfファイルでLoadVars.sendAndLoad()メソッドを使用してデータの送受信を行ってみましょう。
LoadVars.sendAndLoad()メソッドの使い方
送信用LoadVarsオブジェクト.sendAndLoad("ファイル名",受信用LoadVarsオブジェクト,"送信方法");
data.txtに保存された内容を受信します。ActionScriptは下記の通りです。
on (release) {
	var send_lv:LoadVars = new LoadVars();
	send_lv.name1 = name1;
	var load_lv:LoadVars = new LoadVars();
	load_lv.onLoad = function(success) {
		           result = load_lv.name2;
           	};
	send_lv.sendAndLoad("test6.cgi", load_lv, "POST");
}
ボタンが押されたら
送信用のLoadVarsオブジェクトを作成 オブジェクト名はsend_lvにする。
変数name1send_lv.name1へ追加します。
次に受信用のLoadVarsオブジェクトを作成します。
load_lvがロードされたら(onLoad
resultに受信した結果を表示させます。
sendAndLoad()メソッドを使用してデータの送受信を行います。
sendAndLoad()で設定したtest6.cgi
今度はCGIファイルの中身を見てみましょう。色々やり方はありますので変える事ができる方はやってみてください。流れだけでも見てください。
#!/usr/local/bin/perl
require 'cgi-lib.pl';
&ReadParse;
print "Content-type:text/plain\n\n";
if($in{'name1'} ne ""){
$name2=$in{'name1'};
print "name2=$name2";
 
#!/usr/local/bin/perl perlのパスです。(サーバーによっては#!/usr/local/perlの場合もあります。)
require 'cgi-lib.pl'; requireでこのスクリプトでcgi-lib.plを使用できるようにしています。
&ReadParse; &ReadParse;Form情報の処理
print "Content-type:text/plain\n\n";  Content-type:text/plainはヘッダー情報です。今回ヘッダーの内容はhtmlではなくテキストファイルとしますのでMINEタイプはtext/plain
if($in{'name1'} ne ""){ $name2=$in{'name1'};  もしもname1に何か入力されていたら、ne演算子でnot equal(ノットイコール)の略。$in{'name1'}が空じゃなかったらという意味です。変数$name2に入力されたname1を代入。
print "name2=$name2"; name2$name2を代入して出力。
トップへ
Top | Back | Next