HTTPService
HTTPServiceを利用すれば簡単にリクエストを実行できるから、
検索アプリの入力部分のみをFlexアプリに置き換えて
実行結果を別フレームに表示させてみましたっ。
実行結果を取得するところまでは難なく完了。
んでもその結果を別フレームに表示するとこが・・・
HTTPServiceにtarget属性なんてないもんなぁ。
HTTPServiceは単純にデータを取得するだけだから
ないのは当然っちゃ当然なんだろうけど。
いろいろ悩んだ挙句、
通常のFLASHと同じでActionScriptでJavaScriptを実行し、
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
ふい〜、ほんと手探りだわ(−−;