PHPとの連携にはコレでしょう!
sendAndLoad();
連携することで夢の幅がひろがりんぐですね!!
条件としてPHPが動く環境でなければならないということですかね。ということはApacheもいるっつーわけです。
Apache入れてPHP入れて・・・・(`Д´)めんどくせーーーー!
そんな貴方に
ApacheやらPHPやらまとめてインストールできるスグレモノです。
リンク先XAMPP
とりあえず環境がそろったと言う事で本題へ。
まずはFlash側からです。
ソースはこんな感じ。
SV_PATH = "http://localhost/";
var data_lv = new LoadVars();
var res_lv = new LoadVars();
data_lv.test = “テストー”;
data_lv.sendAndLoad(SV_PATH + “test.php”, res_lv, “POST”);
res_lv.onLoad = function(success) {
if(success){
trace(this.res);
}
}
data_lvというオブジェクトに送りたいデータを入れ込んで最後に送信するという感じです。
data_lv.test = “テストー”;
data_lv.tests = “テストー1″;
みたいにすればOKです。
sendAndLoadの部分は
data_lv.sendAndLoad(SV_PATH + “test.php”, res_lv, “POST”);
という感じです。
送るデータ.sendAndLoad(PHPパス, 戻り値, 送信の型);
自分なりの言葉で書いてますので専門的な人が見たら怒られそうですが、こんな感じで俺は理解してます。
ここで結構はまりそうなのが”PHPパス”だと思います。
ローカルで実験中であれば
“http://localhost/呼び出すPHPファイル名”みたいにしないと駄目だということです。相対パスだと駄目だということです。
次、受け取ったときの処理です。
res_lv.onLoad = function(success) {
if(success){
trace(this.res);
}この部分はPHPから送られてきたデータを解析する部分です。
res_lvにPHPからのデータが入ります。
trace(this.res);の
res部分は変数名で、PHPからFLASHへデータを返すときに決めておきます。ちょっと説明しにくいですねえ・・・。
PHP側の処理を書いたら判りやすいのかもしれない!
ではPHP側の処理を・・・。
ファイル名はFlashが呼び出すファイル名にします。ここでは”test.php”ですね。
<?php
$test = $_POST['test'];
echo ‘&res=返す値’;
?>
これだけです。
$_POST['test'];この部分がFlashから送られたデータを取得する部分です。
Flashへの返し方ですが、
echoもしくは
printを使います。
その際、
&変数名=返す値という感じで返します。
複数の場合は、&変数名=返す値&変数名=返す値 という感じで&で繋いでいけばOKです。
ここで
ピン!ときました??
&変数名= に &res=ってしてますよね?
これ、FlashのTrace部分に・・・・。
trace(this.res);
つまりPHPから返ってくる変数名を最初から決めてたって事なんです。
ということは、このresの中には返す値ってのが入っていて、FlashでパブリッシュすればTraceに返す値ってでるはず!!
どうでしょ?うまくいったでしょうか?
Traceが文字化けしているなら文字コードがおかしいのかもしれません。
System.useCodepage = true;
などで回避してください。
自分はこれを最初使ったときは全く意味不明で何に使うんだろうと思ってましたけど今は非常に使えるものだと思ってます。
難易度は少々高めですがやって損はないと思います。
最後にFlashのソースを単純化したものを記述
SV_PATH = "http://localhost/";
var data_lv = new LoadVars();
data_lv.test = “テストー”;
data_lv.sendAndLoad(SV_PATH + “test.php”, data_lv, “POST”);
data_lv.onLoad = function(success) {
if(success){
trace(this.res);
}
}
続きを表示
2007/3/22 - 2:19
|
コメント (0) |
トラックバック(0)
Category : FLASH独学術 AS2
TrackBack : http://nashiko.net/blog/699/trackback