FlashとASP間の変数の受け渡し方法

このQ&Aのポイント
  • FlashからASPへの変数送信方法、ASPでの変数受け取り方法、ASPからFlashへの値送信方法、Flashで値受け取り方法について説明します。
  • FlashとASP間での変数の受け渡し方法について詳しく説明します。FlashからASPへ変数を送信する方法、ASP側で受け取る方法、ASPからFlashへ送信する方法、Flashで値を受け取る方法を順を追って解説します。
  • FlashとASP間での変数の受け渡し方法について詳しく解説します。FlashからASPへ変数の値を送信する方法、ASPで受け取る方法、ASPからFlashへ値を送信する方法、Flashで値を受け取る方法について順を追って説明します。
回答を見る
  • ベストアンサー

FlashとASP間の変数の受け渡し方法

はじめまして。 現在ASP.NET WebDeveloperでWebアプリケーションを構築しています。 今回は、ユーザインターフェースとビジュアルの向上を目指してFlashを取り入れようと思っています。 そこで必要になるのが、FlashとASP間での変数の受け渡し方法です。 目指している仕様は以下の通りです。 1.まず、FlashでボタンをクリックするとASPへ変数を送信します。 2.ASPで受け取った変数を元に計算をして、その結果をFlashに戻す。 3.Flashで受け取った値を表示する。 以上で教えていただきたい所は ・FlashからASPへ変数の値を送信する方法 ・ASP側で受け取る方法 ・ASPからFlashへ送信する方法 ・Flashで値を受け取る方法 さまざまなページを検索して読んでみましたが、詳細まで掲載されているページが見当たりませんでした。 順を追って教えていただけると幸いです。 回答よろしくお願いいたします。

  • Flash
  • 回答数5
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • gantetsu
  • ベストアンサー率100% (1/1)
回答No.5

この場合の構成としては、 1.Flashを貼るページ 2.Webサーバーへのアクセスを提供するUIの無いページ(aspx) の最低2つが必要です。2は、ページが表示されている必要は無い はずなのですが、、表示されていないと、何かうまくいかなかった でしょうか? 複数の値を送信する方法なのですが、XMLを送受信しているので、 そのXMLに載せてあげれば良いだけです。 やり方は人それぞれだと思いますが、私は下記のようなXMLを送受 信していました。 <XMLRoot> <Value1>aaa</Value1> <Value2>aaa</Value2> <Value3>aaa</Value3> </XMLRoot> ご検討を祈ります。分からなければまた聞いてください。

abeille96
質問者

お礼

回答ありがとうございます。 二つのページが必要なのですね。早速試してみました。 先ほど記しましたが、無事に値を受け取り表示することが出来ました。 複数の値の受信方法ですが、これをQueryStringで受け取ったようにVBの変数に代入する方法はありますか? xml.sendAndLoad("http://~", tes, "POST"); getURL("http://~", tes, "POST"); このようにXML.SendAndLoadの後にブラウザでページを開くためにgeturlでPOSTしているので、そちらで値を送信してしまっているのかもしれません。このような記述で問題はありませんか? よろしくお願いします。

その他の回答 (4)

  • gantetsu
  • ベストアンサー率100% (1/1)
回答No.4

ちょっと誤解があるようなので処理の流れを整理します。 1)Flash側で、xml.sendAndLoadでXMLデータ送信 2)ASP側で、呼び出し先のaspxのPage_Loadが動く 3)ASP側で、Page_Load内でResponse.WriteでXMLを書き出す 4)FLash側で、非同期用の通知メソッド(xml.onLoadに設 定した関数)が呼び出される。 こういう流れになるはずですが、ここまではOKでしょう か? sendAndLoadでググるとMacromediaのサイトがHitします。 そこを参考にするのも良いと思います。

abeille96
質問者

お礼

自己解決いたしました。お騒がせしました。 Flashのスクリプトでgeturlを呼び出し、セットされた変数を送信し、ブラウザで対象のページを表示させました。 on (release) { var tes = 10; xml.sendAndLoad("http://~", tes, "POST"); getURL("http://~", tes, "POST"); name_txt.text = "送信完了"; } ここでまた質問ですが、複数の値を送信するにはどういう方法を使えば良いでしょうか。 私が作ろうとしているアプリケーションは3つの値を送信する必要があります。 たびたびすみません。よろしくお願いします。

abeille96
質問者

補足

返信が遅れまして申し訳ありません。 一通りの流れは理解することが出来ました。 とても初歩的な質問かもしれませんが、FlashでXMLデータ送信をしてもブラウザで対象のASPのページを表示していないと値を受け取ることが出来ないのでしょうか。 FlashをASPのページに貼り付けるとページが表示された時点でPage_Loadが呼び出されてしまい、処理が出来ませんでした。Flashを貼り付けるためのページがもう一つ必要なのでしょうか。 Flashはどこに貼り付けるなどのページの構成を教えていただけないでしょうか。 よろしくお願いします。

  • gantetsu
  • ベストアンサー率100% (1/1)
回答No.3

QueryStringが入っていないのですね。 Request.Form(0)の方には何か入っていないでしょうか? あと、コメントがサンプルコードと違っていました。 すみません。 ×Request.QueryString(0)が無かったら ○Request.Form.Countが1以上だったら です。

abeille96
質問者

お礼

自己解決しました。 複数の値を送信する方法ですが、ActionScriptで配列を作成し送信しました。 それをそのままASPで受け取って表示させると「値,値,・・・」のようにカンマで区切られた状態で表示されました。 それをVBの文字列操作関数のSplitで「,」で区切ることにより取り出せました。 長い期間たくさんのアドバイスを頂きまして、ありがとうございました。 非常に助かりました。

abeille96
質問者

補足

ありがとうございます。 エラーは消えました。 どうやらコードをPageLoadに書いていたので、値が入る前に変数にアクセスしてしまったために出たエラーだったようです。 Button_Clickイベントに写したところエラーがなくなりました。 Flashで整数の10を送信して、Buttonをクリックして入っている値を表示させて見ましたが、 /wEPDwULLTEwNTUwMzcxMDZkZF5CtVkx67RanrwO8bshh3jlFqYJ このような表示になっていました。 ActionScriptのほうは on (release) { var tes =10; xml.sendAndLoad("Default.aspx",tes, "POST"); name_txt.text="送信完了" } このようになっています。 ActionScriptのほうが不適切なのでしょうか?

  • gantetsu
  • ベストアンサー率100% (1/1)
回答No.2

No1です。 そうですね。ここには載っていませんでしたね。 試行錯誤の上、実際には下記のようにしました(VB.NET)。 XML文字列を受け取ったら、後はXMLDocumentに読み込んで好きに処理できます。 Dim request_xml_str As String If Request.Form.Count = 0 Then request_xml_str = Request.QueryString(0) Else request_xml_str = Request.Form(0) End If 調べてみると、sendAndLoadはFlashの開発環境ではクエリパラメタ でXMLを渡そうとするのに対し、実際にHTMLに貼り付けて使う場合 にはForm変数として渡そうとする模様でした。 私はデバッグのやりやすさを考えて、Request.QueryString(0)が無 かったらRequest.Form(0)の値を使用するようにしました。ちなみ に名前は無しで送られてくるので、インデックスでアクセスするし かないようです。

abeille96
質問者

補足

回答ありがとうございます。 PageLoadイベントに頂いたコードを記述したところ、エラーが出てしまいました。 request_xml_str = Request.QueryString(0)  この行にインデックスが範囲を超えていますというエラーです。 0なのに範囲外というのはどういうことなのでしょうか・・・

  • gantetsu
  • ベストアンサー率100% (1/1)
回答No.1

はじめまして。 Flashはまだ、なかなか情報が無くて苦労しますよね。 以前、同じような事をASP.NETで試みた事があります。 FlashとWebサーバとのやりとりは、XML.sendAndLoadを使用して、XMLでやりとりするのが最も応用がきいて良いです。 参考URLを見てください。

参考URL:
http://www.flash-jp.com/modules/newbb/viewtopic.php?viewmode=flat&topic_id=5080&forum=6
abeille96
質問者

補足

回答ありがとうございます。 早速参考のURLを拝見させていただきました。 この情報を元に試してみたところ、ASPからFlashへ変数を渡すことに成功しました。 しかし、FlashからASPに値を渡すことができませんでした。 この場合はどのような方法を使えばいいのでしょうか? 重ねて回答よろしくお願いします。

関連するQ&A

  • ASPへのデータの受け渡しについて

    以下のようなリンクが自動生成されるHTMLをつくりました。 http://**********/****/zzz.asp?A=5,B=nande zzz.aspの内部で A=request.querystring("A") B=request.querystring("B") と記述して、受け渡しを完了しているのですが、 Aについては数値として扱いたいのですが、 チェックをしていると、どうも文字列として変数の中に格納されているようです。 ここで質問です。 (1)requestオブジェクトを使って値の受け渡しをした場合 すべて受け渡し後は文字列としてしか扱えないのでしょうか? (2)文字列としてしか扱えない場合、数値として受け渡し後に 扱いたい場合の対処方法はあるのでしょうか? ちなみに受け渡しの時のMethodはGetを使っています。 よろしくお願いします。

  • ASPで画面間のパラメタ受け渡し

    こんばんは。ASP初心者です。 ASPでWEBページの作成を行っています。画面遷移をResponse.Redirect()で行っているのですが、遷移前のページと遷移後のページでパラメタを受け渡したい場合はSession("hoge") = "hogehoge"のようにセッションに入れる以外、何か方法はないでしょうか。リクエスト間でパラメタ渡せればがいいので、セッションを通じて保持しておく必要がないのです。クエリを使用するとアドレス欄に変数の値が見えてしまうのでできれば使いたくありません。

  • 変数の受け渡しについて

    お世話になります。 アクションというレイヤーを作成し、1フレームに次のようなスクリプトを記述した場合の変数の受け渡しを知りたいのですが。 作業1.onEnterFrame = function () { this._x += 0.5; this._width=this._width-0.6 if (this._x>517) {a = 1;} } 作業2.onEnterFrame = function () { if(a == 1){ this._x += 0.5; this._width=this._width-0.6;} } この方法だとaという変数の値を読んでこないみたいで。 よろしくお願いいたします

    • ベストアンサー
    • Flash
  • asp.netで値を受け渡し

    asp.netで値を受け渡しする際に、 cookieやsession、staticといった方法があります。 単一アクセスであればどれでもいいと思うのですが、 同時複数アクセスが発生した場合に、 一番安全なのはcookieだと思いますが、 session、staticなどは別アクセスで書き換えられてしまう可能性があるのでしょうか?

  • 変数の受け渡し

    質問.1 hoge.phpから header('Location: hoge2.php');でページ移動させた場合、hoge.phpで使っていた変数をhoge2.phpに渡す方法ってありますか?クッキーやSESSION以外の方法があればおねがします、formの値をhoge2.phpに渡したいのです 質問2 クッキーはhoge.phpでセットした後、同じページ内で削除はできないのですか?

    • ベストアンサー
    • PHP
  • 配列の受け渡し

    こんばんは。 あるページで使用した配列を他のページでも使いたいのですが、 こういう配列を格納した変数の受け渡しって出来るのでしょうか? 普通の変数のデータを受け渡したかったら <input type="hidden" />で直接valueに変数の値を入れれば良いですが、 配列だと自分では以下のように愚直にやる方法しか分かりません。 もっとちゃんと渡せる方法ってあるのでしょうか? <?$a=array(1,2,3,4,5);?> <? for($i=0;$i<count($aaa);$i++){ ?> <input type="hidden" value="<?=$aaa[$i]?>" name="hoge[]"/> <?}?>

    • ベストアンサー
    • PHP
  • セッション変数への値の代入方法について

    レガシーASPでチェックボックスやラジオボタンをクリックしたら サブミット等のページ遷移ではなく同じページ内で即座にその値を セッション変数へ代入させる方法はあるのでしょうか?

  • Flashのfor文で変数名を・・・

    Flashでfor文を使い、変数に値をいれたいと考えています。 kotae1,kotae2,kotae3・・・kotae10という名前の変数に 数字の順に答えを格納していきたいのですが、 iを使って表現するにはどのようにすればいいのでしょうか。 for(var i = 0; i < 10; i++){ 「   」= i * 10; } 「 」のところです。 よろしくお願いします!

    • ベストアンサー
    • Flash
  • HTMLからJavaScript経由で変数をFlashに渡す方法について

    こんにちわ。flashについてお聞きしたいことがあります。HTMLページから、JavaScript経由で、HTMLページに表示しているflashに変数を渡す方法を教えていただきませんでしょうか。 例えば、、、、 ●準備 (1)page1.htmlとpage2.htmlとpage3.htmlを用意します。 ※各htmlファイルは、コンテンツページをイメージします。 (2)各htmlページに、flashで作成したメニュー(menu.swf)を挿入します。 ※すべて同じmenu.swfを使用する。 ●したいこと 各htmlページの頭に、JavaScriptで変数(またはファイル名の読み込み)をセットして、その変数をmenu.swfで読み込み、action Scriptで、各ページごとにflash(menu.swf)の見せ方を制御したい。 以上ですが、説明が下手ですみません。 わかる方がいらっしゃいましたら、ご伝授の程、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ASP .NET → Access に書込み

    ASP .NET のTEXT BOX から入力したデーターをAccess に書き込もうとしているのですが、Access にはブランクのデーターしか登録できません。 どうも変数の受け渡しが悪いようですが処理方法がわかりません。どなたか ご教授のほどお願いいたします。