アプリ版:「スタンプのみでお礼する」機能のリリースについて

Flash MXを使用している初心者です。

a.htmlに貼り付けたa.swfのボタンから
b.htmlに貼り付けたb.swfの中に
変数を渡したいと思っています。

◆GET送信では、a.swfのボタンに
 on (release) {
System.useCodepage = true;
var my_lv = new LoadVars();
my_lv.sws = name1_txt.text;
my_lv.send("b.html", "_top", "GET");
}
と書き込み、
b.html部分には
以下のJavaScriptを書き込みました。
<script type="text/javascript">
var mydata = location.href.split("?")[1];
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400">');
document.write('<param name="movie" value="b.swf" />');
document.write('<param name="FlashVars" value="'+mydata+'" />');
document.write('<embed src="b.swf" FlashVars="'+mydata+'" width="550" height="400" type="application/x-shockwave-flash" />');
document.write('</object>');
</script>

以上の方法でGET送信のswf受け取りは成功したのですが、
POST送信のswf受け取り方法がわかりません。

POST送信までは、成功しているようなんですが、
その変数をswfに表示するには、どうすればいいでしょうか・・・?
また、ローカルで確認可能でしょうか・・・?

PHPやcgiがわからないので、
それらを使わない方法で、ご教授いただきたく、
よろしくお願いいたします。。

A 回答 (2件)

GET や POST ではなく SharedObject 経由 ではダメでしょうか?


SharedObject は MX でギリギリ使用できます。

他の コミュニティ の URL ですが。
[22013] チェックボックスのon、offの結果表示
http://www.gac.jp/article/index.php?stats=questi …
↑本題の手作りチェックボックスはあまり関係ありません。

この回答への補足

早朝にもかかわらず、ご教授ありがとうございます。。

SharedObjectですか・・・・
教えていただいたURLを拝見しましたが、
なかなか理解するのに難しそうでした。
でも、時間のあるときにじっくり試してみたいと思います。
ありがとうございます。

本件は依頼者に「POST送信で」と依頼されています。
Flash間のみのPOST送信(swf表示)は不可能なんでしょうか?
どんなに検索しても、hitしないんですが・・・。
不可能とわかれば、きっぱりあきらめて、
別の方法に方向転換できるのですが・・・。。

どんなヒントでもいいので、教えていただけるとありがたいです。
よろしくお願いいたします。

補足日時:2008/08/09 10:19
    • good
    • 0

#1です。



> Flash間のみのPOST送信(swf表示)は不可能なんでしょうか?

はい?
ご質問内容とずれてますよ。
混乱しているか、話を変えたかしてませんか?

複数(2つ)SWF は 複数(2つ)HTML に貼ってあるのでしょう?
だから、HTML に値を送ってHTMLを開かねばなりませんよね。
したがって、ご質問に書かれていらっしゃるように、
JavaScript を経由しなければ、受信側にデータが届きません。

 SWF→ブラウザ→HTML→JavaScript→SWF

わかりますか?
他の物を経由する以上、そこで送受信が行われるわけです。
ぜんぜん、「Flash間のみのPOST送信」 ではありません。
問題は JavaScript と言うことになります。

ですから、 JavaScript で POST が受信できるかどうかと言うのが問題です。
JavaScript の専門ではないのでわかりませんが、
そもそもそういうことはできないのではないかと思います。

QNo.2517418 受信データ取得
http://okwave.jp/qa2517418.html

JavaScript で POST 受信できなければ、Flash に届きようがないので POST 受信などできません。

それ以前になぜ、
ブラウザ経由で 自分自信→自分自身 で POST 送信しなければならないのか、
根本的にわかりませんが。



======================

> Flash間のみのPOST送信

を、今実際にサーバにアップして初めてやってみました。
普通はこんなことしません。
10年くらいFlashに携わっていますが、
したことも、しようと思ったこともありませんでした。
また、そのような質問にも初めて出会いました。

 任意のフォルダ
   ├ a.html
   ├ a.swf
   └ b.swf

「b.swf」 内 _root のフレーム1には、
「my_data」 という "変数名" のダイナミックテキストを用意しておきます。

「a.swf」 内 _root のフレーム1には、
「_btn」 という インスタンス名 のボタンを用意しておきます。
そして、そのフレーム1に次のように書きます。

---------------------------------
my_data = "abcdefg";
_btn.onRelease = function() {
getURL("b.swf", "_self", "POST");
};
---------------------------------

わかりますですしょうか。
これだと、 「Flash間のみのPOST送信」 になるのです(成功すればですが)。
間に HTML は介しません。


上の 3ファイル をサーバ上にアップして動作確認。

 結果
  ↓
 [i] ページを表示できません

でした。
つまり、
送られないどころか、そんな SWF は存在しないことになってしまいました。


---------------------------------
my_data = "abcdefg";
_btn.onRelease = function() {
getURL("b.swf", "_self", "GET");
};
---------------------------------

と書いた場合は、
「b.swf」 に [abcdefg] が表示されました。

2つのサーバで検証しましたが同じ結果だったので、
おそらくどこでやっても同じだと思います。


===================

Flash どうしは、普通、loadMovie ですから、
ファイル内データのやりとりです。
別ファイルでありながらムービークリップ間ということになります。
そんなとこでは当然、GET も POST も存在しません。

非常に変わった場合が、
#1 で書きました SharedObject(要は Cookie みたいなものですよ)です。

もう1つが、
2窓同時開きの SWF 間通信、LocalConnection です。

「LocalConnection」
http://www.google.co.jp/search?hl=ja&q=LocalConn …


> 本件は依頼者に「POST送信で」と依頼されています。

「ローカル間の通信に、GET や POST のようなサーバ通信のようなものを出さないでくれ~(笑)。」 です。
    • good
    • 0
この回答へのお礼

大変丁寧でわかりやすいご回答をありがとうございました!!

お尋ねしたかったことは、おっしゃるとおり、
SWF→ブラウザ→HTML→JavaScript→SWFでの
POST送信によるSWF受け取りでした。
(送信元のSWFから受信元のSWFへというつもりで、
FLASH間のみのPOST送信と書いてしまいました。すみません。。)

>JavaScript で POST 受信できなければ、Flash に届きようがないので POST 受信などできません。

という1言で、迷宮からきっぱり脱出することができ、
方向転換することができました。
(結局、PHPやcgiのわかる人に入ってもらうことになりました。)

>今実際にサーバにアップして初めてやってみました。
普通はこんなことしません。
・・・ということまで実験していただき、ありがとうございました。
順を追って理解が深まり、納得することができました。

また教えていただいた「LocalConnection」が、
今後使えそうなので、勉強してみたいと思います。

大変勉強になりました。
本当に、ありがとうございました。

お礼日時:2008/08/09 22:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!