
はじめまして。
現在ASP.NET WebDeveloperでWebアプリケーションを構築しています。
今回は、ユーザインターフェースとビジュアルの向上を目指してFlashを取り入れようと思っています。
そこで必要になるのが、FlashとASP間での変数の受け渡し方法です。
目指している仕様は以下の通りです。
1.まず、FlashでボタンをクリックするとASPへ変数を送信します。
2.ASPで受け取った変数を元に計算をして、その結果をFlashに戻す。
3.Flashで受け取った値を表示する。
以上で教えていただきたい所は
・FlashからASPへ変数の値を送信する方法
・ASP側で受け取る方法
・ASPからFlashへ送信する方法
・Flashで値を受け取る方法
さまざまなページを検索して読んでみましたが、詳細まで掲載されているページが見当たりませんでした。
順を追って教えていただけると幸いです。
回答よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
この場合の構成としては、
1.Flashを貼るページ
2.Webサーバーへのアクセスを提供するUIの無いページ(aspx)
の最低2つが必要です。2は、ページが表示されている必要は無い
はずなのですが、、表示されていないと、何かうまくいかなかった
でしょうか?
複数の値を送信する方法なのですが、XMLを送受信しているので、
そのXMLに載せてあげれば良いだけです。
やり方は人それぞれだと思いますが、私は下記のようなXMLを送受
信していました。
<XMLRoot>
<Value1>aaa</Value1>
<Value2>aaa</Value2>
<Value3>aaa</Value3>
</XMLRoot>
ご検討を祈ります。分からなければまた聞いてください。
回答ありがとうございます。
二つのページが必要なのですね。早速試してみました。
先ほど記しましたが、無事に値を受け取り表示することが出来ました。
複数の値の受信方法ですが、これをQueryStringで受け取ったようにVBの変数に代入する方法はありますか?
xml.sendAndLoad("http://~", tes, "POST");
getURL("http://~", tes, "POST");
このようにXML.SendAndLoadの後にブラウザでページを開くためにgeturlでPOSTしているので、そちらで値を送信してしまっているのかもしれません。このような記述で問題はありませんか?
よろしくお願いします。
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します。
そこを参考にするのも良いと思います。
この回答への補足
返信が遅れまして申し訳ありません。
一通りの流れは理解することが出来ました。
とても初歩的な質問かもしれませんが、FlashでXMLデータ送信をしてもブラウザで対象のASPのページを表示していないと値を受け取ることが出来ないのでしょうか。
FlashをASPのページに貼り付けるとページが表示された時点でPage_Loadが呼び出されてしまい、処理が出来ませんでした。Flashを貼り付けるためのページがもう一つ必要なのでしょうか。
Flashはどこに貼り付けるなどのページの構成を教えていただけないでしょうか。
よろしくお願いします。
自己解決いたしました。お騒がせしました。
Flashのスクリプトでgeturlを呼び出し、セットされた変数を送信し、ブラウザで対象のページを表示させました。
on (release) {
var tes = 10;
xml.sendAndLoad("http://~", tes, "POST");
getURL("http://~", tes, "POST");
name_txt.text = "送信完了";
}
ここでまた質問ですが、複数の値を送信するにはどういう方法を使えば良いでしょうか。
私が作ろうとしているアプリケーションは3つの値を送信する必要があります。
たびたびすみません。よろしくお願いします。
No.3
- 回答日時:
QueryStringが入っていないのですね。
Request.Form(0)の方には何か入っていないでしょうか?
あと、コメントがサンプルコードと違っていました。
すみません。
×Request.QueryString(0)が無かったら
○Request.Form.Countが1以上だったら
です。
この回答への補足
ありがとうございます。
エラーは消えました。
どうやらコードをPageLoadに書いていたので、値が入る前に変数にアクセスしてしまったために出たエラーだったようです。
Button_Clickイベントに写したところエラーがなくなりました。
Flashで整数の10を送信して、Buttonをクリックして入っている値を表示させて見ましたが、
/wEPDwULLTEwNTUwMzcxMDZkZF5CtVkx67RanrwO8bshh3jlFqYJ
このような表示になっていました。
ActionScriptのほうは
on (release) {
var tes =10;
xml.sendAndLoad("Default.aspx",tes, "POST");
name_txt.text="送信完了"
}
このようになっています。
ActionScriptのほうが不適切なのでしょうか?
自己解決しました。
複数の値を送信する方法ですが、ActionScriptで配列を作成し送信しました。
それをそのままASPで受け取って表示させると「値,値,・・・」のようにカンマで区切られた状態で表示されました。
それをVBの文字列操作関数のSplitで「,」で区切ることにより取り出せました。
長い期間たくさんのアドバイスを頂きまして、ありがとうございました。
非常に助かりました。
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)の値を使用するようにしました。ちなみ
に名前は無しで送られてくるので、インデックスでアクセスするし
かないようです。
この回答への補足
回答ありがとうございます。
PageLoadイベントに頂いたコードを記述したところ、エラーが出てしまいました。
request_xml_str = Request.QueryString(0)
この行にインデックスが範囲を超えていますというエラーです。
0なのに範囲外というのはどういうことなのでしょうか・・・
No.1
- 回答日時:
はじめまして。
Flashはまだ、なかなか情報が無くて苦労しますよね。
以前、同じような事をASP.NETで試みた事があります。
FlashとWebサーバとのやりとりは、XML.sendAndLoadを使用して、XMLでやりとりするのが最も応用がきいて良いです。
参考URLを見てください。
参考URL:http://www.flash-jp.com/modules/newbb/viewtopic. …
この回答への補足
回答ありがとうございます。
早速参考のURLを拝見させていただきました。
この情報を元に試してみたところ、ASPからFlashへ変数を渡すことに成功しました。
しかし、FlashからASPに値を渡すことができませんでした。
この場合はどのような方法を使えばいいのでしょうか?
重ねて回答よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Flash 私のコンピューター上のファイルが開けられない。 1 2022/07/19 18:15
- USBメモリー・SDカード・フラッシュメモリー プリンタのドライバーをUSB Flash Diskに保存したい。 4 2023/05/23 23:30
- マルウェア・コンピュータウイルス FlashPlayerの削除とマルウェア感染について 5 2023/02/23 20:52
- ホームページ作成・プログラミング Adobe FLASH に代わるソフトはありますか? 4 2022/09/27 19:35
- デスクトップパソコン ホームページビルダー15 1 2023/05/30 12:30
- その他(インターネット接続・インフラ) 語学レッスン予約ページを作ろうとしています。 1 2022/09/26 17:43
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- 建築士 建築士製図試験での縦距離の数値の書き方を教えて下さい 3 2023/07/16 11:36
- デスクトップパソコン デバイスからのHDMI信号がありません 5 2022/05/07 18:08
- 大学受験 高2旧帝大志望です。共通テスト数学のアドバイスください泣 2 2022/12/14 19:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DATファイルが読めません(VB・...
-
形式(値だけ)を選択して貼り...
-
Excel VBAのリストボックスの値...
-
テキストボックスのvalueとtext...
-
値を返さないコード パス
-
【C++/CLI.NET】コンボボックス...
-
ASPの変数の値をJAVA Script内...
-
VB2008EEのラジオボタンのチェ...
-
変数名の取得
-
変数に代入してある数値を表示...
-
VBA 小数点の割り算
-
ASP.NET ドロップダウンリスト...
-
VB.NETのスクロールバーコント...
-
コンボボックスを読み取り専用...
-
データベースを用いたwebページ
-
ダイアログボックスにリストビ...
-
FlashとASP間の変数の受け渡し方法
-
XMLのプルダウンに表示する値は...
-
PysimpleGUIでデータベースを作る
-
ListBoxでオートフィルター表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VBA ドロップダウンリストを残...
-
Excel VBAのリストボックスの値...
-
値を返さないコード パス
-
VB.NETでコンボボックスの1行目...
-
VB初心者。小数点以下の表示で...
-
Excel VBA 複数選択したリスト...
-
C#の質問です
-
マクロで奇数と偶数の値を2か所...
-
変数名の取得
-
マクロ 特定のセル値のみクリ...
-
シーケンサで最小値を保持する
-
[VB.net] DataGridViewのコンボ...
-
Powershellのparamについて
-
PL/SQLでのTO_DATEの時間取得に...
-
【C++/CLI.NET】コンボボックス...
-
ユーザーフォームのテキストボ...
-
VB.NETのスクロールバーコント...
-
VB.NETでアクティブなformを知...
-
vb6のVSFlexGridで選択行、列の...
おすすめ情報