• 締切済み

FlashとJSPの連携

 FlashをJSPに埋め込んで、お互いにやり取りするページを作成しています。 HTMLのタグであるEMBEDで、とりあえずFlashに送ることはできたのですが、EMBEDは送信と同時にFlashを表示してしまいます。 そのため2回以上使用するとFlashが重複して表示されてしまいます。これだと配列が送れません。(可能なら For文でループさせて送れるようにしたい)またFlashからJSPにデータを送る方法もわからないのです。 どなたか教えていただけないでしょうか。

みんなの回答

  • joy_28
  • ベストアンサー率84% (45/53)
回答No.1

gaet574さん、 1.・・・・・これだと配列が送れません。(可能ならFor文でループさせて送れるようにしたい) → 良く分からないので、回答は、他の方々に、お任せしますが、 2.FlashからJSPにデータを送る方法もわからないのです。 → これは、以下のようにします。分かりやすい、AS2.0で記載してます。 -Flash側:第一フレームに記載 //ここから input_txt.text = "";//テキスト入力で、ロード時は、ブランク rcv_txt.text= "";//JSP処理結果を代入する、ダイナミックテキストで、ロード時は、ブランク var lv:LoadVars = new LoadVars();//LoadVarsオブジェクトを生成 lv.onLoad = function(success) { if (success) {//successなら、ダイナミックテキストrcv_txtに、JSPで生成された、外部テキスト相当のmessageを代入する rcv_txt.text = this.message; } else { rcv_txt.text= "読み込み失敗です!"; } }; btn.onRelease = function():Void {//ボタンクリックで、JSPへ送信し、処理結果を、受け取る lv.nameData = input_txt.text;//テキスト入力値を、変数 nameData に代入し、 lv.sendAndLoad("./response.jsp?"+getTimer(),lv);//nameDataを、SWFと同一階層にある、response.jspに送信する。lvは、受信するオブジェクトでもある。+getTimer()は、ブラウザーのキャッシュ回避策 }; //ここまで JSPは使ったことないですが、某サイトを、訪問し、PHPやPerlと基本は同じだろうと、勝手に思い込んで、書いてますので、間違いがあるかも。JSPは、gaet574さんに、お任せします。 -JSP側:ファイル名 response.jsp <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <html> <head> <title>FlashからのnameData処理</title> </head> <body> <% request.setCharacterEncoding("UTF-8");//Flashの内部コードは、UTF-8なので、とにかく、UTF-8としました String str = request.getParameter("nameData");//Flashから送付される変数 nameDataを取得 out.println("&message=" + str+"を受け取り&");//JSP側で、&message=strを受け取り& と表示されると、Flashが表示できます %> </body> </html> でいかがでしょうか?