Flash MX Professional 2004を使えば、FlashコンテンツからSOAP Webサービスを直接利用することができます。
 スクリプトコードで実現する方法と、GUIで設定する方法がありますが、動作基盤は同じようです。

 

WebServiceクラスを使ってActionScriptだけで実現する方法

 こちらの方が、より細かい設定ができるようです。SOAPヘッダを追加したりもできそうです。プログラマには、こっちの方がわかりやすいかもしれませんね。

 サンプルコード(Buttonのclickイベントでの記述例)

on (click) {
  import mx.services.*;
  // WSDLを指定してWebServiceクラスをインスタンス化
  var service = new WebService("http://localhost:8080/fortune/services/Test?wsdl");
  // メソッドを呼び出す。戻り値はPendingCallクラスとなる。
  resultObj = service.getFortune(_parent.birth_ti.text);
  // onResultイベントハンドラに結果取得後の処理を記述する。
  resultObj.onResult = function(results) {
    _parent.group_label.text = results.rokkoGroup;
    _parent.content_txt.text = "";
    for (var i = 0; i < results.items.length; i++) {
      _parent.content_txt.text += "[[" + results.items[i].name + "]] "
                                + results.items[i].content + "\n\n";
    }
  }
  // onFaultイベントハンドラに結果取得失敗時の処理を記述する。
  resultObj.onFault = function(fault) {
    trace(fault.faultCode + "," + fault.faultstring);
  }  
}

 WebServiceクラスのコンストラクタの第2引数にLogクラスのインスタンスを指定すると、Webサービスの詳細なログが出力されるようになります。デバッグ用ですね。

serviceLog = new Log(Log.VERBOSE); 
serviceLog.onLog = function(txt) { 
  trace(txt); 
} 
var service = new WebService("http://jomora.bne.jp:8080/Quiz/QuizService.asmx?wsdl", serviceLog);

WebServiceComponentクラスを使ってGUIで設定する方法

 こちらはマウスだけで設定できちゃうので、デザイナさん向けなのかな?

  1. 「ウィンドウ」「開発パネル」「Webサービス」を選択して、Webサービスパネルを開きます。
    Webサービスパネル1.PNG
  2. 左の青いアイコンをクリックして、Webサービスの定義を開き、WebサービスのWSDLを返すURLを入力し、「OK」ボタンを押します。
    Webサービスの定義.PNG
  3. すると、Webサービスコンポーネントが登録されました。
    Webサービスパネル2.PNG
  4. 利用したいメソッドを選択し、右クリックして、「メソッド呼び出しの追加」を選択すると、フォームにWebサービスコンポーネントのオブジェクトが張り付きます。
    Webサービスパネル3.PNG
    Webサービスコンポーネント.PNG

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS