Ads By Google
flashからphpへのデータ送信について
皆様初めまして。現在MacOSXのFlash8で、phpとのデータ送受信を行うflashゲームを制作しています。
このゲームでは開始時と終了時にphpへアクセスするという形をとっているのですが、
終了時のphpの処理がどうしてもうまくいきません。
ゲーム開始時には以下のようなスクリプトを記述しています。
ダイナミックテキスト(変数id)に入力されたデータをチェックし、
idが正しければ進めるという仕組みです。
var sendObj:LoadVars = new LoadVars();
var receiveObj:LoadVars = new LoadVars();
login_btn.onRelease = function(){
sendObj.id = id;
sendObj.sendAndLoad("check.php",receiveObj,"POST");
}
また、ゲーム終了時には以下のように記述し、
ゲーム開始時に入力したidをそのまま二つのphpへと送る仕組みになっています。
"finish.php"は一度ゲームを終わらせたかどうかの判定用で、
アクセスした際に空のフォルダに「送信されたid名.txt」というファイルを生成します。
また、"リンク先フォームのphp"は通常のアンケートフォームhtmlをphpにしたもので、
フォーム側のidという項目にsendObjから送られたidが読み込まれ、
入力する手間を省くためにこのようになっています。
form_btn.onRelease = function(){
sendObj.send("finish.php","POST");
sendObj.send("リンク先フォームのphp","_self","POST");
}
問題点は2行目の記述にあります。
このままで、phpの処理はうまく行われるのですが、
”finish.php”の結果と、"リンク先フォームのphp"という二つのブラウザが開いてしまいました。
そのため、2行目のsendObj.send("finish.php","POST");を
"POST"部分を省略しsendObj.send("finish.php");に変更したところ、
フォームへのid送信はうまくいくのですが、("finish.php")がうまく処理されませんでした。
また、sendObj.send("finish.php","","POST");でもダメでした。
最終的にゲームのFlashを閉じ、フォームだけを表示したいと思っています。
一回の動作で同じオブジェクトから二つのphpへアクセスするというのが難しいのかとも思います。
sendObj.send("finish.php","POST");の結果をブラウザで開かずに、処理を行うためにはいったいどうしたらよいのでしょうか?
2006-12-29 14:38の質問
この質問は、30日間解決しなかったために自動的に質問が一旦閉じられました。
回答(1)
1.
2006-12-29 16:35:25

たぶん、sendObjという1つだけのObjで2ヶ所を呼ぶからそうなるのではないかと。
とでもしておいて、
なら出来そうな気がするけど時間が無いので確認してません(^^;ネンマツナノデ
var sendObj1:LoadVars = new LoadVars(); var sendObj2:LoadVars = new LoadVars();
とでもしておいて、
sendObj1.sendAndLoad("finish.php","POST");
sendObj2.send("リンク先フォームのphp","_self","POST");
なら出来そうな気がするけど時間が無いので確認してません(^^;ネンマツナノデ
回答レベル : アドバイス
試してみたのですが、上手くいかなかったようです。
わざわざご回答ありがとうございました。
Ads By Google
コメント(3)
#1. hpg◆Mf7EUUQl3Q
2006-12-29 18:02:12
どう上手くいかなかったですか?
・まだ窓が2つ開いちゃう
・1つしか開かないけどidが送れてない
・ActionScriptでエラーが出る
・その他
エラーが出るならその内容を教えてね。
#2. 963gi
2006-12-29 22:53:21
教えていただいたスクリプトでも窓が二つ開いてしまいました。
var sendObj1:LoadVars = new LoadVars();
var sendObj2:LoadVars = new LoadVars();
var receiveObj:LoadVars = new LoadVars();
sendObj1.sendAndLoad("finish.php",receiveObj,"POST");
sendObj2.send("リンク先フォームのphp","_self","POST");
という風に新たに仮の受け取り先を指定することで、窓が二つ開くことは無くなり、idも送れるようになりました。
やはり、1つだけのObjで2ヵ所を呼ぶことに問題があったようですね。
これで安心して年を越せそうです。アドバイスありがとうございました!
#3. hpg◆Mf7EUUQl3Q
2007-01-08 16:30:20
アケオメ
とにかく出来たようで良かったです!



