HTTPService

HTTPServiceを利用すれば簡単にリクエストを実行できるから、
検索アプリの入力部分のみをFlexアプリに置き換えて
実行結果を別フレームに表示させてみましたっ。


実行結果を取得するところまでは難なく完了。
んでもその結果を別フレームに表示するとこが・・・
HTTPServiceにtarget属性なんてないもんなぁ。
HTTPServiceは単純にデータを取得するだけだから
ないのは当然っちゃ当然なんだろうけど。


いろいろ悩んだ挙句、
通常のFLASHと同じでActionScriptJavaScriptを実行し、
JavaScript側でリクエストを実行することにしました。
う〜ん、これでできたことはできたけど、
これじゃJavaScriptを記述したHTMLが必要になるよなぁ。

<mx:Script>
  <![CDATA[
    function execute(param:String){
      //JavaScriptのexecute()を実行
      getURL("javascript:execute('" + param + "')");
    }
  ]]>
</mx:Script>

<mx:TextInput id="kana" width="200"/>
<mx:Button label="検 索" click="execute(kana.text);"/>

この辺の悩みをRIA 技術情報掲示板に書き込んだら返信を頂けて、
ばっちり解決できました〜
どうやらLoadVars()を利用すればよかったみたい。
Flashやってる人にとってはこれ当たり前?(汗)
上の内容をLoadVars()でやると↓な感じです。

<mx:Script>
  <![CDATA[
    function execute(param:String){
      var sender:LoadVars = new LoadVars();
      sender.kana = param;
      sender.send("/flex/search","frm2","POST");
    }
  ]]>
</mx:Script>

<mx:TextInput id="kana" width="200"/>
<mx:Button label="検 索" click="execute(kana.text);"/>

こっちならMXMLファイルだけで簡潔するし、
POST/GETやターゲットの切り替えも簡単っ。

検索アプリ側はWindows-31Jエンコーディングしてるから
結局getURL()じゃないと動かなかったけどねw


ふい〜、ほんと手探りだわ(−−;